"C언어 포인터의 크기"의 두 판 사이의 차이

14번째 줄: 14번째 줄:
void main()
void main()
{
{
        char *pc;
    char *pc;
        int *pi;
    int *pi;


        printf("%ld", sizeof(pc)); // 8
    printf("%ld", sizeof(pc)); // 8
        printf("%ld", sizeof(pi)); // 8
    printf("%ld", sizeof(pi)); // 8
}
}
</source>
</source>

2016년 12월 6일 (화) 20:56 판

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()
{
    char *pc;
    int *pi;

    printf("%ld", sizeof(pc)); // 8
    printf("%ld", sizeof(pi)); // 8
}

4 같이 보기

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