본문 바로가기

프로그래밍/C 기초

[C언어 강좌] #37 포인터연산

이번에는 포인터 연산을 배워봅시다.

메모리접근에 사용되는 *연산 이외에도 포인터에는 덧셈과 뺄셈도 가능합니다.

하지만 여기서 중요한건 덧셈과 뺄셈이 가능하다는 사실이 아니라 일반 덧셈뺄셈과는 차이가 있다는것입니다.



포인터가 가리키고있는 주소에 +1을 해봤습니다.

근데 출력결과를 보면 이상한일이 일어났네요. 분명 1을 증가시켰는데 출력결과를 보면 4가 증가했습니다.


눈치가 빠르신분들은 알겠지만 위 그림을 보면 +1을 할경우 int형범위를 4칸 뒤에있는 주소로 이동했습니다.

int형이 4바이트기때문에 1을 증가시키면 주소값은 4가 증가되는것입니다.

즉.여기서 알수있는것은 sizeof(자료형타입)만큼 이동한다는 소리입니다.



num을 char형으로 바꾸고 sizeof를 했더니 1이 출력됐습니다. char의 크기는 1바이트라는게 되겠죠.

그렇기때문에 char에는 포인터연산을 하면 1씩 증가된다는걸 볼수 있습니다.



그리고 물론 감소할때도 똑같이 적용됩니다.