45 – 포인터와 문자열 다루기

이전 글에서 작성한 듯, 문자열을 문자의 비열로 처리된다. 즉, char형 포인터를 이용하여 문자열을 처리할 수 있다는 것이다.

char *str;

str = “hello”;

이런 식으로 하게 되면 아래의 그림처럼 된다.


바로 앞에서 배열과 포인터 부분에서 본 것과 똑같은 상황인 것이다. 문자 처리에 차이가 있을 뿐이므로 예시도 바로 보여주도록 하겠다. 


44 – 포인터와 배열

포인터와 배열은 진짜로 밀접한 관계를 가지고 있다. 다른 것보다 예시를 직접 보고 시작하자.



배열 이름인 arr은 &arr[0], 즉, 배열의 첫 번째 요소를 주소로 가지고 있으며, 상수로 취급하지 않기 때문에 배열 이름인 arr값을 변경할 수 없다. for문의 초기식쪽을 주목해야 하는데, ptr = arr은 ptr = &arr[0]을 의미하는 것이다. 그래서 처음에 출력되는 것이 첫 번째 값인 10이다. 

그 다음에 ptr+1을 하게 되면, 배열 요소의 다음 요소인 arr[1]을 카리킨다. ptr++을 하면 할수록 다음 칸을 실행하게 되는 것이다. 그것이 바로 아래 그림의 설명이다.


결국 포인터 하나로 배열의 모든 값을 처리할 수 있는 것이다.