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

포인터(Pointer) 연산 정리들어가며코드해설