7.3 자료형 크기 구하기
이번에는 자료형(타입)의 크기를 바이트(byte) 단위로 구하는 sizeof 연산자에 대해 알아보겠습니다. 먼저 sizeof 연산자는 다음과 같은 형식으로 사용합니다.
- sizeof 표현식
- sizeof(자료형)
- sizeof(표현식)
다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.
integer_sizeof.c
#include <stdio.h> int main() { int num1 = 0; int size; size = sizeof num1; // 변수 num1의 자료형 크기를 구함 printf("num1의 크기: %d\n", size); return 0; }
실행 결과
num1의 크기: 4
sizeof 표현식 형식으로 자료형의 크기를 구할 수 있습니다. 표현식은 변수, 상수, 배열 등 프로그래머가 만들어낸 요소를 뜻합니다. 여기서는 정수형 변수 num1의 자료형 크기를 구하였고 4가 출력되었습니다.
단, sizeof int와 같은 형식으로는 자료형의 크기를 구할 수 없습니다. 자료형의 크기를 직접 구하려면 다음과 같이 sizeof(자료형) 형식으로 사용합니다.
int size; size = sizeof(int);
sizeof(표현식) 형식도 사용할 수 있습니다.
int num1 = 0; int size; size = sizeof(num1);
이제 각 정수 자료형의 크기를 구해보겠습니다(Visual Studio, Windows).
integer_type_sizeof.c
#include <stdio.h> int main() { printf("char: %d, short: %d, int: %d, long: %d, long long: %d\n", sizeof(char), // 1: sizeof로 char 자료형의 크기를 구함 sizeof(short), // 2: sizeof로 short 자료형의 크기를 구함 sizeof(int), // 4: sizeof로 int 자료형의 크기를 구함 sizeof(long), // 4: sizeof로 long 자료형의 크기를 구함 sizeof(long long) // 8: sizeof로 long long 자료형의 크기를 구함 ); return 0; }
실행 결과
char: 1, short: 2, int: 4, long: 4, long long: 8
출력 결과에 따르면 char는 1바이트, short는 2바이트, int와 long은 4바이트, long long은 8바이트입니다(여기서 unsigned가 붙어도 크기는 같습니다).