void main(){
int a[] = {10, 20, 30, 40, 50};
int *p = a;
printf("%d", *++p);
printf("%d", *p+1);
printf("%d", ++*p);
printf("%d", (*p)++);
printf("%d", *p+=1);
printf("%d", *p++);
printf("%d", *(p+1));
}
배열 a의 주소는 100번지라 가정
출력값 | 출력후 값 | 출력후 주소 |
20 | 20 | 104 |
21 | 20 | 104 |
21 | 21 | 104 |
21 | 22 | 104 |
23 | 23 | 104 |
23 | 30 | 108 |
40 | 30 | 108 |
p+1 | p가 가리키는 주소에 1을 더함 |
*p+1 | p가 가리키는 주소 안의 값에 1을 더함 |
*(p+1) | p가 가리키는 주소에 1을 더한 후 안의 값 접근 |
++*p | p가 가리키는 주소 안의 값에 1을 더함 |
*++p | p가 가리키는 주소에 1을 더한 후 안의 값 접근 |
(*p)++ | *p를 처리 후 p가 가리키는 주소 안의 값에 1을 더함 |
*p++ | *p를 처리 후 p가 가리키는 주소에 1을 더함 |
반응형
'Programming Language > C' 카테고리의 다른 글
[C] strcmp() (0) | 2020.11.26 |
---|---|
[C] 16진수 표현 (0) | 2020.11.25 |
[C] strcpy() strncpy() (0) | 2020.11.24 |
[C] write() 함수 (0) | 2020.11.20 |
[C] 표준 입력함수 (0) | 2018.08.21 |