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