더북(TheBook)

8.3 포인터 변수의 메모리 크기

실수를 저장하려면 float 또는 double 자료형을 선언해야 합니다. float 자료형의 메모리는 4바이트 크기의 방이므로 4바이트에 해당하는 크기만큼 실수를 저장할 수 있습니다. 더 큰 실수를 저장하려면 8바이트 메모리 크기를 가지는 double을 선언하여 사용합니다. doublefloat보다 두 배 큰 메모리의 실수를 저장할 수 있습니다.

그러나 포인터 변수는 자료형에 상관 없이 메모리 크기가 언제나 동일합니다. 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));
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.