프로그래밍/C언어

C언어 - 자료형과 변수

solution online 2023. 6. 26. 17:08
728x90
반응형

오늘은 자료형과 변수라는 것을 알아보겠습니다.

 

자료형이란 데이터의 속성을 정해주는 것을 얘기합니다.

컴퓨터는 사람이 아니기에 명령을 내릴 때 상세하고 자세~한 명령을 줘야 합니다.

 

지금 쓰고 있는 문자들 역시 사람은 그냥 문자, 문장, 글자로 자연스럽게 인식하지만 컴퓨터는 "문자" 인지 "문자열" 인지를 알려줘야 합니다.

또는 숫자인지, 소수점인지 세세~하게 알려줘야 처리할 수 있습니다.

이렇게 어떤 데이터를 쓸 것인지 알려줄 때 쓰는 것이 자료형 입니다.

 

자료형은 C언어 뿐만 아니라 프로그래밍 언어에 사용되는 기본 입니다.

그럼 C언어의 자료형의 종류를 보겠습니다.

자료형 크기(byte)
정수 short 2
int 4
long 4
문자 char 1
실수 float 4
double 8

가장 많이 쓰이는 자료형들만 모아봤습니다.

크기에 대한 이해가 필요한데 1byte는 8bit 입니다.

프로그래밍 언어를 배울 때 특히 C언어처럼 시스템을 다루는 언어를 배울 때 2진법과 bit, byte 등의 크기 개념을 가지고 있어야 합니다.

 

왜? 1bit 하나라도 더 줄여야 동작의 효율성, 최적화 등이 가능하기 때문입니다.

자세한 것은 다른 블로그에 "C언어 자료형" 이라고 검색해 보시기 바랍니다.

저는 빨리 써보는 것에 중점을 두니까요 ㅎㅎ

 

자 그럼 아래처럼 자료형만 쓰면 되느냐?

#include <stdio.h>

int main(void)
{
    short
    int
    long
    char
    float
    double
}

안됩니다.

 

자료형과 변수는 세트라고 보시면 되는데요.

숫자 형태인지 문자 형태인지를 나타나는 자료형과 어떤 공간을 어떤 자료형으로 쓸지 정해줘야 하기 때문입니다.

 

언어를 배우면서 왜? 라는 질문이 많이 생기실텐데

만든 사람이 정해놓은 규칙이기에 왜 자료형과 변수를 같이 써야돼? 라는 식의 궁금증은 그냥 접으시면 됩니다 ㅎ

 

그럼 변수는 무엇인가?

데이터를 저장하기 위한 공간 이라고 보시면 됩니다.

 

3칸짜리 서랍이 있다면 첫번째 칸은 양말, 두번째는 속옷, 세번째는 기타 등등 넣어두는 것 처럼

숫자를 넣을 공간, 문자를 넣을 공간을 정한다고 보시면 됩니다.

 

그럼 아래처럼 쓸 수 있습니다.

#include <stdio.h>

int main(void)
{
    short sval;
    int ival;
    long lval;
    char cval;
    float fval;
    double dval;
}

val 는 variable 이란 변수 영어의 약자입니다.

단어를 모두 쓰면 타이핑 쓰느라 시간들기도 하고 가독성을 위해 약어를 많이 사용합니다.

각 줄 맨 끝에 세미콜론(;)은 끝맺음을 알려주는 약속이라고 보시면 됩니다.

 

모든 명령의 끝은 세미콜론(;)이 붙습니다.

이 상태를 변수 정의 또는 변수 선언 이라고 표현하기도 합니다.

자세하게 들어가면 정의나 선언이나 차이가 있지만 용어 하나 알아간다 생각하시고 알아두시면 되겠습니다 ㅎ

 

이렇게 하면 자료형과 변수 사용 준비가 끝났습니다.

 

그 다음은 각 변수에 값을 넣어줘야 합니다.

#include <stdio.h>

int main(void)
{
    short sval = 123;
    int ival = 1234;
    long lval = 1234;
    char cval = 'a';
    float fval = 3.14;
    double dval = 3.1415;
}

이 상황을 "초기화" 했다고 합니다.

 

변수는 일종의 공간이라고 말씀드렸죠?

그게 무슨 공간이냐? 바로 메모리 공간을 뜻합니다. 여기서 메모리란 여러분이 알고 계시는 RAM, 하드디스크, ROM 등이 있고, 변수를 선언하고 컴파일 하면 메모리에 공간이 생겨서 그곳에 값을 넣고 처리하게 됩니다.

 

어질어질하죠!? ㅎㅎ

일단 써보는게 중요합니다!

 

자 다음으로 초기화한 변수의 값이 제대로 들어갔는지 확인해 봐야겠죠!?

#include <stdio.h>

int main(void)
{
    short sval = 123;
    int ival = 1234;
    long lval = 1234;
    char cval = 'a';
    float fval = 3.14;
    double dval = 3.1415;
    
    printf("sval: %d\n", sval);
    printf("ival: %d\n", ival);
    printf("lval: %ld\n", lval);
    printf("cval: %c\n", cval);
    printf("fval: %f\n", fval);
    printf("dval: %lf\n", dval);
}

반응형

결과가 잘 나왔나요?

변수에 초기화 시킨 값이 그대로 잘 나왔죠!?

 

그런데 실수형 출력에 0이 몇 개 붙었네요.

실수형은 기본적으로 소수점 6자리까지 처리가 가능합니다. 그렇다보니 초기화 시킨 값 외에는 0으로 나오는거고요.

 

각 자료형별로 허용할 수 있는 값들이 정해져 있습니다.

int는 -2,147,483,648 ~ 2,147,483,647 의 수를 처리할 수 있고,

char는 -128 ~ 127 까지 처리하는 등 각 자료형 별로 처리할 수 있는 크기가 정해져 있습니다.

 

이런 사항도 고려해서 자료형을 써야 합니다.

왜? C언어는 시스템 내부 또는 아랫단이라는 표현을 쓰는 부분의 프로그래밍을 많이 합니다.

여러분이 많이 접한 안드로이드도 핵심 부분, 흔히 OS라고 하는 부분은 C언어로 되어 있습니다.

사용하는 변수의 정확한 크기를 정하고 그에 맞는 자료형을 쓰지 않으면 불필요하게 많은 메모리를 사용한다거나 심각한 오류가 발생할 수 있기 때문 입니다.

 

그래서 시스템프로그래밍, 임베디드 개발자, 디바이스드라이버, 커널 개발자 등 아랫단을 개발하고자 C언어를 공부한다면 컴퓨터 구조, 자료구조 등의 기본 이론을 필수로 익혀둬야 하는 것이고요.

 

그런데 앞서 말씀드렸지만 전 사용해 보는 것에 중점을 두기로 했으니 자세한 사항은 구글링 또는 책을 구매하여 보시기 바랍니다 ㅎ

 

오늘은 자료형과 변수 그리고 초기화 된 결과를 봤습니다.

아~ 이렇게 쓰는구나~ 를 알아가시는 시간이 되셨길 바라면서 마치겠습니다!

728x90
반응형