C

포인터 변수에 정수연산.

91song4 2022. 5. 2. 12:58

int*

 

nData의 주소값

 

pnData의 메모리값

nData의 주소값 0x006FF76C
pnData의 메모리값을 보면 6c f7 6f 00 (nData의 주소)가 들어있다.
pnData += 2;
이 구문을 보면 +2는 8(int * 2)로 해석된다.
우선 먼저 계산을 해보면, 6C + 8 = 74 이 된다
구문실행을 하고 pnData의 메모리값을 들여다보면

pnData의 변경상황

그렇다면 pnData += 2; 구문에서 +2가 int는 pnData일까 nData일까? 궁금해졌다.
pnData의 자료형인 int를 따라간 것일까?
nData의 자료형인 int를 따라간 것일까?

char*
nData
pcData

pcData += 2; 를 진행시켜보자

포인터변수 쪽의 자료형을 따라가는것으로 마무리.