Tuuna Computer Science

[ C 언어 ] 포인터 처음 배울 때 보면 좋은 예제 본문

C language

[ C 언어 ] 포인터 처음 배울 때 보면 좋은 예제

GuTTe 2018. 8. 5. 15:41
아래 예제의 잘못된 점을 찾으세요!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main(void)
{
        int arr[5= { 1,2,3,4,5 };
        int *ptr = arr;
        int i;
        for (i = 0; i<5; i++)
        {
               *ptr += 2;
               printf("arr[%d]: %d ptr[%d] : %d\n", i, arr[i], i, ptr[i]);
               ptr++;
        }
        return 0;
}
 
cs
/*
ptr의 값은 1004번지를 가리키는데 여기서 ptr[1]하면 또 4를 더해야함 *ptr로 고쳐야할듯

지속적으로 값이 엇갈리게 됨

쉽게설명하면 처음 ptr의 주소번지는 arr배열의 주소 번지가 같아 하지만 여기서 ptr++은 ptr 주소번지에 4바이트를 더하는 것이므로 arr주소번지는 그대로 인체

위 예제는 윤성우님의 프로그래밍 카페에서 발췌했습니다.
*/


Comments