인프런 커뮤니티 질문&답변

khan님의 프로필 이미지
khan

작성한 질문수

홍정모의 따라하며 배우는 C언어

10.3 포인터의 산술 연산

5:18 질문있습니다

작성

·

283

0

1 #include

  2 

  3 int main()

  4 {

  5 

  6     char* ptr = 0;

  7 

  8     printf("%zd %zd %zd\n", sizeof(char*), sizeof(double*) , sizeof(long long*));

  9 

 10     printf("%p %lld\n",ptr ,(long long)ptr);

 11 

 12     ptr += 1;

 13 

 14     printf("%p %lld\n",ptr ,(long long)ptr);

 15 

 16 

 17 

 18 }

이때 포인터 변수의 크기는 주소의 크기이므로 4바이트(x86)로 고정되어서 항상 4씩 증가하는 것 아닌가요? 제가 잘못 이해하고 있는 부분이 어딘지 몰라서 이렇게 질문드립니다.

(8번째 줄 코드는 제가 추가한 것입니다)

답변 4

2

포인터의 크기는 고정인데

char* ptr=0; 과 double* ptr=0 이 값이 다르게 나오고

void* ptr=0;이 오류가 나오는 이유를 생각해 보세요

1

강의에서 서로 다른 자료형에 대해서 이런 저런 시도를 하는데... 이 부분을 눈여겨 보셨으면 좋겠습니다.

1

khan님의 프로필 이미지
khan
질문자

포인터의 크기는 고정이 아닌가요?

0

안녕하세요?
생각하신 것과는 좀 다릅니다. 자료형의 크기와 연관지어서 생각해보시면 좋겠습니다.

khan님의 프로필 이미지
khan

작성한 질문수

질문하기