안녕하세요. 주석에 "연산되고"가 무슨말인지 이해를 못했는데 "처리되고" 뭐 이런 뜻이죠? 아래쪽에 ---> 로 설명 달아놓은 부분외에는 모두 맞습니다. 제가 설명달아놓은 부분도 제대로 알고계신건데 오타가 난듯 하군요.
경선 님이 쓰신 글 :
: 주석단 설명이 맞나 안 맞나 깅가밍가 하네요. 틀린 부분은 분석좀 해주시면 감사^^
:
: #include <stdio.h>
:
: void main(void)
: {
: int a[] = {10, 20, 30};
: int b[] = {100, 200, 300};
: int *p;
: int *q;
:
: p = a;
:
: printf("%d\n", *p);
: printf("%d, %d, %d\n", a[0], a[1], a[2]);
: printf("%d\n", (*p)++); // *p가 연산되고 p+1
--> p가 +1 되는것이 아니라 p가 가리키는 a[0]의 값이 +1 됩니다. 전반적인 내용을 보니 알고계신듯 한데 오타인듯...
: printf("%d, %d, %d\n", a[0], a[1], a[2]);
: printf("%x\n", p);
: printf("%d\n", *++p); // p의 주소가 ++된 것의 *p
: printf("%x\n", p);
: printf("%d, %d, %d\n", a[0], a[1], a[2]);
: printf("%d\n", ++*p); // 현재 *p 내용의 ++
: printf("%x\n", p);
: printf("%d, %d, %d\n", a[0], a[1], a[2]);
:
: q = b;
: printf("\n");
:
: printf("%d\n", *(q++)); // q의 주소의 *q가 연산되고 q의 주소가 ++
: printf("%d, %d, %d\n", b[0], b[1], b[2]);
: printf("%d\n", *(++q)); // q의 주소가 ++된 후 *연산
: printf("%x\n", q);
: printf("%d, %d, %d\n", b[0], b[1], b[2]);
: printf("%d\n", ++(*q)); // *q의 ++이 연산
: printf("%x\n", q);
: printf("%d, %d, %d\n", b[0], b[1], b[2]);
: }
|