8.3 포인터 변수의 메모리 크기
실수를 저장하려면 float 또는 double 자료형을 선언해야 합니다. float 자료형의 메모리는 4바이트 크기의 방이므로 4바이트에 해당하는 크기만큼 실수를 저장할 수 있습니다. 더 큰 실수를 저장하려면 8바이트 메모리 크기를 가지는 double을 선언하여 사용합니다. double은 float보다 두 배 큰 메모리의 실수를 저장할 수 있습니다.
그러나 포인터 변수는 자료형에 상관 없이 메모리 크기가 언제나 동일합니다. float형 포인터와 double형 포인터 변수의 메모리 크기가 같다는 말이지요. 하물며 배열, 구조체 등 어떤 자료형의 포인터 변수도 크기는 모두 같습니다. 예제로 확인해 봅시다.
pointer5.c
#include <stdio.h> main() { float a; double b; int *c; // 4바이트 크기 정수형 포인터 변수 c 선언 long *d; // 8바이트 크기 정수형 포인터 변수 d 선언 float *e; // 4바이트 크기 실수형 포인터 변수 e 선언 double *f; // 8바이트 크기 실수형 포인터 변수 f 선언 printf("float 실수형 변수의 크기는 %d\n", sizeof(a)); printf("double 실수형 변수의 크기는 %d\n", sizeof(b)); printf("int 포인터 변수의 크기는 %d\n", sizeof(c)); printf("long 포인터 변수의 크기는 %d\n", sizeof(d)); printf("float 포인터 변수의 크기는 %d\n", sizeof(e)); printf("double 포인터 변수의 크기는 %d\n", sizeof(f)); }