실행 결과
선택하고 싶은 반을 입력하세요.
1반은 1, 2반은 2, 3반은 3을 입력하세요.
1
1반 학생의 이름
james
tommy
ada
예제에서는 이중 포인터, 즉 포인터의 포인터 변수인 selection에 포인터 배열 변수의 값을 할당하여 각 반을 선택합니다. 예를 들어 selection = a;의 의미는 a반의 첫 번째 학생 james가 저장된 문자열 배열의 첫 번째 주소 값을 가리키는 포인터 변수의 주소를 selection이 갖는다는 의미입니다.
위 코드에서 i = 0인 경우, selection[0]은 a[0]을 의미하고, 104번지이므로(그림 9-16 참고) james가 출력되는 것입니다. 포인터의 포인터 selection을 사용하여 a반, b반, c반을 결정하는 것이지요.
지금까지 문자열과 포인터, 배열과 포인터, 이중 포인터 등 포인터의 다양한 활용에 대해서 알아보았습니다. 조금 어렵게 느껴진 사람도 있을 것입니다. 하지만 포인터의 개념, 즉 주소 값에 대한 의미와 주소 연산에 대해서만 명확하게 파악하고 있다면 몇 차례 정독을 통해 더 쉽게 받아들일 수 있을 것입니다.