C언어 포인터의 크기

Jmnote (토론 | 기여)님의 2019년 10월 29일 (화) 01:20 판

1 개념

Size Of Pointer
포인터의 크기
  • 32비트 시스템의 포인터 크기: 4바이트
  • 64비트 시스템의 포인터 크기: 8바이트
  • 포인터가 가리키는 대상인 자료형의 크기와는 다르다...

2 포인터 크기 원리

포인터는 메모리 위치를 가리키기 위한 주소를 담는 변수다. 만약 32비트 시스템이라면 CPU의 메모리 접근을 위한 주소가 32비트 만큼 가능하기 때문에 포인터도 32비트(4바이트)가 된다. 반면, 64비트 시스템이라면 64비트(8바이트) 만큼 가능하기 때문에 포인터도 64비트(8바이트)가 된다.

3 예시(64비트 시스템)

#include <stdio.h>
void main()
{
    int *pi;
    char *pc;
    long *pl;
    float *pf;
    double *pd;
    printf("%d ", sizeof(pc));
    printf("%d ", sizeof(pi));
    printf("%d ", sizeof(pl));
    printf("%d ", sizeof(pf));
    printf("%d ", sizeof(pd));
    // 8 8 8 8 8 
}
→ 64비트 시스템에서 int, char, long,float, double 자료형 포인터의 크기는 8바이트(=64비트)임

4 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}