0w0

[C] 포인터 3 간접 참조 연산자와 증감 연산자 본문

Coding/C

[C] 포인터 3 간접 참조 연산자와 증감 연산자

0w0 2016. 9. 5. 04:06
728x90
반응형

//NULL은 stdio.h에 0으로 정의되어 있다.


//간접 참조 연산자와 증감 연산자

 

// *p++; 포인터 p를 증가( 포인터 p는 주소이기 값, 포인터 타입만큼 한번 증가)

// (*p)++; p가 가리키는 위치의 값을 증가(포인터 p가 가지고 있는 주소의 대상을 한번 증가)


 

#include<stdio.h>


int main(){

int i= 10;

int *pi= &i;

printf("i = %d, pi= 0x%x \n",i,pi);

(*pi)++; //pi가 가리키는 대상 값을 증가 

printf("i = %d, pi= 0x%x \n",i,pi);

*pi++; //포인터 pi를 증가

printf("i = %d, pi= 0x%x \n",i,pi);

return 0;





 수식

의미 

 v= *p++

 p가 가리키는 값을 v에 대입한 후에 p를 증가한다. (주소 증가)

 v= (*p)++ 

 p가 가리키는 값을 v에 대입한 후에 p가 가리키는 값을 증가한다. (값 증가) 

 v= *++p

 p를 증가시킨 후에 p가 가리키는 값을 v에 대입한다. (주소 증가)

 v= ++*p

 p가 가리키는 값을 가져온 후에 그 값을 증가하여 v에 대입한다. (값  



우선 순위 

 가장 먼저 붙어있는 기호가 있다면 아래 표로 우선 순위를 생각안하고 ++*p 처럼 대상 값을 가져오고 그 값을 가져온다고 생각하면 됩니다. 그 외에 기호들이 양옆으로 붙어 있거나 불확실할 때 생각하기 편합니다.


 우선 순위

1순위 

2순위 

3순위 

기호 

( )   괄호 

++, --   덧셈, 뺼셈 

*  포인터 


728x90
반응형

'Coding > C' 카테고리의 다른 글

[C] 포인터 5 포인터와 배열  (0) 2016.09.05
[C] 포인터 4 포인터의 형변환  (0) 2016.09.05
[C] 정렬 2 버블 정렬  (0) 2016.09.05
[C] 정렬 1 선택 정렬  (0) 2016.09.05
[C] 포인터 2 간접 참조 연산자 *  (0) 2016.09.05
Comments