728x90
728x90
포인터(Pointer) 연산 정리
들어가며
- 포인터의 연산을 하나의 코드로 이해해보자.

코드
#include <stdio.h> void main() { int a[2] = { 4, 9 }; int *p = a; printf("1 : %d \n", *p); printf("2 : %d \n", (*p)++); printf("3 : %d \n", *p++); printf("4 : %d \n", *p--); printf("5 : %d \n", *(p++)); printf("6 : %d \n", *p); printf("7 : %d \n", *--p); printf("8 : %d \n", ++*p); printf("9 : %d \n", *(++p)); }
결과 보기
1 : 4 2 : 4 3 : 5 4 : 9 5 : 5 6 : 9 7 : 5 8 : 6 9 : 9
해설
4 | 9 |
printf(1 : %d \n, *p);
현재 위치의 값 : 4
printf(2 : %d \n, (*p)++);
현재 위치의 값 출력 후 1 증가 (값 증가) : 4
printf(3 : %d \n, *p++);
현재 위치의 값 출력 후, 주소 1 증가 : 5
printf(4 : %d \n, *p--);
현재 위치의 값 출력 후, 주소 1 감소 : 9
printf(5 : %d \n, *(p++));
현재 위치의 값 출력 후, 주소 1 증가 : 5
printf(6 : %d \n, *p);
현재 위치의 값 : 9
printf(7 : %d \n, *--p);
주소 1 감소하고 해당 위치의 값 출력 : 5
printf(8 : %d \n, ++*p);
해당 위치의 값 1 증가 : 6
printf(9 : %d \n, *(++p));
주소 1 증가하고 해당 위치 값 출력 : 9
728x90
728x90
'Programming > C' 카테고리의 다른 글
[C] 일차원 배열의 시프트(Shift) (0) | 2022.09.29 |
---|---|
[C] 배열(Array) (0) | 2022.09.28 |