주소 값의 연산

포인터변수의 연산은 메모리 주소에 대한 연산이며, 덧셈과 뺄셈만 허용된다.

 

다음의 예제를 보자

 

#include <stdio.h>

int main()
{
        short snum = 5;
        short *sp = &snum;
        float fnum = 3.14f;
        float *fp = &fnum; 
        printf("value of sp = %p\n", sp);
        printf("value of ++sp = %p\n", ++sp);
        printf("value of fp = %p\n", fp);
        printf("value of ++fp = %p\n", ++fp);
        return 0;
}

 

pointer4-1.png

 

<실행 결과>.

결과에서 short 형 포인터 변수의 증가는 2이며, float 형 포인터 변수의 증가는 4가 되는 것을 볼 수 있다.

포인터 연산은 그 변수의 크기 연산이다. sp +4 면 2바이트씩 4번 증가 하는 것 이다.

sp -1 은 2바이트 감소한 값이 된다.