실행 결과를 잘 보면, 배열의 이름 a가 &a[0]와 같다는 것을 알 수 있습니다. 여기서 우리는 중요한 한 가지를 정의할 수 있습니다. 배열의 이름 a는 곧 배열의 첫 번째 요소, 즉 0번째의 주소인 &a[0]와 같다는 것입니다. 그러므로 a를 출력해도, &a[0]를 출력해도 둘 다 배열의 첫 번째 방의 주소를 출력합니다.
배열과 주소의 관계를 알았으니 이제 포인터 변수와 배열의 관계를 파악해 보겠습니다. 앞의 코드에서 ‘a는 배열의 이름이자 배열의 첫 번째 주소’라고 하였습니다. 그리고 ‘주소를 저장하려면 포인터 변수를 사용한다’고 배웠습니다.
정수형 배열의 첫 번째 주소를 포인터 변수 b에 저장하려면 다음과 같은 순서로 코드를 작성하면 됩니다.
int *b; // 정수형 포인터 변수 b 선언 b = &a[0]; // 포인터 변수 b 초기화
여기서 b = &a[0];를 다음과 같이 바꿀 수도 있습니다.
b = a;
또는 코드 두 줄을 다음과 같이 쓸 수도 있습니다.
int *b = &a[0]; // 포인터 변수 b 선언과 동시에 초기화