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 |