1. 포인터로 배열 다루기
배열의 모든 값을 출력하는 함수를 만들 때 배열요소의 값을 일일이 전달인자로 주는 것은 한계가 있다. 아래 예제 코드를 보자!
배열의 선언
int ary[5] = {10, 20, 30, 40, 50};
함수의 호출
ary_prn(ary[0], ary[1], ary[2], ary[3], ary[4]);
▲모든 배열요소를 일일이 전달인자로 줘야 한다.
함수의 정의
void ary_prn(int a, int b, int c, int d, int e) { printf(“%d, %d, %d, %d, %dn”, a, b, c, d, e); }
▲매개변수도 배열요소의 개수만큼 있어야 한다!
포인터를 사용하면 배열요소의 값(데이터)를 간단히 처리할 수 있다.
2. 포인터로 배열요소를 참조하자!
배열은 첫번째 배열요소의 포인터만 알면 나머지 배열요소의 포인터도 쉽게 알 수 있다.
[그림 1]
포인터에 정수값을 더할 때는 포인터가 가리키는 자료형의 크기를 곱해서 더해준다. 예를 들어 4를 더하면 마지막 배열요소의 포인터가 구해진다.
[그림 2]
모든 배열요소의 포인터는 첫번째 배열요소의 포인터에 정수값을 차례로 더하면 구해진다.
int ary[5] = {10, 20, 30, 40, 50};
[그림 3]
각 배열요소의 포인터에 참조연산자를 사용하면 모든 값을 참조할 수 있다. 아래 코드가 그 예이다.
for(i=0; i<5; i++){ printf(“%dn”, *(&ary[0]+i)); }
[그림 4]