|
1년 전 공부했던 '배열과 포인터' source를 우연히 봤는데 내용 일부분 중 이해가 안되는 부분이 있어서
질문합니다.
#include <stdio.h>
int data[2] = {100, 300};
int moredata[2] = {200, 400};
void main(void)
{
int *p1, *p2, *p3;
p1 = p2 = data;
p3 = moredata;
printf("*p1++ = %d, *++p2 = %d, (*p3)++ = %d\n",
*p1++, *++p2, (*p3)++);
printf("*p1 = %d, *p2 = %d, *p3 = %d\n",
*p1, *p2, *p3);
p1++;
p2++;
p3++;
printf("%d, %d, %d\n", *p1, *p2, *p3); // 이해가 안되는 부분
// (*p1)++은 (*p1)을 출력 후, (*p1)++을 한다.
printf("%d\n", (*p1)++); // *p1++로 바꿔볼 것
printf("%d\n", *p1);
}
이해가 안되는 부분에서 '200, 200, 400'이 출력되야 하는데 왜 '201, 201, 400'이 출력되죠?
|