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 |