자료형은 데이터를 표현하는 방법이다. C언어가 제공해주는 기본 자료형에 대하여 알아 보겠다. int, double, char 등 이와 같은 일부의 키워드를 자료형이라고 한다. 이러한 자료형들은 다음과 같이 2가지 정보를 담고 있다. 표현 또는 저장 하려는 데이터가 '정수' 인지 '실수' 인지에 따른 정보가 담겨 있다. 표현하려는 데이터의 크기가 몇 bytes 인지에 대한 정보가 담겨 있다.
ex) int 자료형 : '정수'를 표현 및 저장하고, 그 크기는 4 bytes
double 자료형 : '실수'를 표현 및 저장하고, 그 크기는 8 bytes
자료형이 왜 필요할까?
두루마리 휴지를 보면 일정한 간격으로 뜯을 수 있게 표시가 되어 있다. 그런데 그 표시만큼 뜯는 사람은 거의 없다. 보통은 자신이 필요한 만큼 한번에 3~4칸씩 뜯어서 사용한다. 컴퓨터도 메모리는 1바이트 단위로 주소가 부여돼 있다고 해서 데이터를 저장하거나 읽을 때 1바이트 단위로만 사용해야 하는 것은 아니다. 자신이 사용할 데이터의 크기에 맞게 할당해서 사용하면 된다. 그래서 메모리를 사용할 때 몇 바이트의 메모리를 사용할 것인지를 명시해야 되는데, 이것을 데이터타입(Data Type) 또는 자료형이라고 한다.
기본 자료형의 종류와 데이터의 표현범위
int a’는 'a'라는 변수에 10진 정수를 저장하기 위해 4byte의 메모리를 할당하라.’는 의미다. 따라서 저장되는 값은 10진수에서 2진수 형태로 변환되어 a에 저장된다.
int는 정수형 변수, float는 실수형 변수, char은 문자형 변수다. 자료형에 따라 저장될 수 있는 값의 종류와 범위가 결정되어 있다.
예시: 우리가 char a;를 변수로 지정해 주었을경우 a안에는 오직 문자밖에 들어가지 못합니다. 그리고 컴퓨터는 그 문자를 숫자로 인식한다.
C언어에서는 총 8개의 기본 자료형을 제공한다. 다음은 기본 자료형의 종류와 데이터의 표현범위다.
자료형 별 크기는 컴파일러(사람이 프로그래밍 언어로 작성한 것을 CPU가 이해 할 수 있도록 변환 해주는 것)에 따라서 약간의 차이를 보인다.
C언어의 표준에서는 자료형별 상대적 크기를 표준화 할 뿐 구체적인 크기까지 언급하지는 않겠다.
자료형이 여러개가 있지만 그러한 자료형들이 크게 '정수형' 과 '실수형'으로 나누어진다.
데이터를 표현하는 방식이 정수형과 실수형 두 가지로 나누어지기 때문이다.
정수형에서도, 실수형에서도 둘 이상의 기본 자료형이 존재한다.
표현하고자 하는 값의 크기에 따라서 적절히 선택할 수 있도록 다수의 자료형이 제공되기 때문이다.
서식지정자
printf("%s %s\n", "Hello", "1234");
<실행결과>Hello 1234
첫 번째 %s에 "Hello"가 들어가고 두 번째 %s에 "1234"가 들어가므로 "Hello 1234"가 출력된다.
그럼 Hello에 , (콤마)까지 출력하려면 어떻게 해야 할까? 이때는 문자열 안에 콤마를 넣어주면 된다.
printf("%s %s\n", "Hello,", "1234");
<실행결과>Hello, 1234
printf("%s, %s\n", "Hello", "1234");
<실행결과>Hello, 1234
printf("%s%s\n", "Hello ", "1234");
printf("%s%s\n", "Hello", " 1234");
<실행결과>Hello 1234
Hello 1234
<출처 : DO IT C언어 - 김성엽>