강좌 & 팁
글 수 2,412
2012.04.22 22:20:02 (*.172.215.154)
42433
주소 값의 연산
포인터변수의 연산은 메모리 주소에 대한 연산이며, 덧셈과 뺄셈만 허용된다.
다음의 예제를 보자
#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;
}
<실행 결과>.
결과에서 short 형 포인터 변수의 증가는 2이며, float 형 포인터 변수의 증가는 4가 되는 것을 볼 수 있다.
포인터 연산은 그 변수의 크기 연산이다. sp +4 면 2바이트씩 4번 증가 하는 것 이다.
sp -1 은 2바이트 감소한 값이 된다.