더북(TheBook)

arr 자체의 값이 0000000FE51EF768, arr[0]의 주소가 0000000FE51EF768이라고 나오네요. arr 자체가 가지는 값과 arr 배열 첫 번째 요소의 주소가 같음을 확인할 수 있습니다.

앞에서 포인터 변수 ptrarr을 넣은 이유도 이와 같습니다. 포인터 변수 ptrarr을 넣으면 ptrarr 배열의 첫 번째 주소를 값으로 가지므로 배열의 요소에 접근해 값을 읽어 오거나 바꿀 수 있습니다.

그럼 arr 자체의 값인 주소에 담긴 실제 값은 뭘까요? 한번 출력해 봅시다. 먼저 arr의 값은 주소이므로 주소의 값을 출력하려면 앞에 *를 붙여야겠죠. 그리고 arr의 값은 arr[0]의 주소라고 했습니다. 비교할 수 있게 arr[0]의 주소에 들어 있는 값도 출력해 보겠습니다. arr[0]의 주소는 &를 붙이면 알 수 있고 주소의 실제 값은 *으로 알 수 있으니 다음과 같이 작성합니다.

printf("arr 자체의 값인 주소의 실제 값 : %d\n", *arr); 
printf("arr[0]의 실제 값 : %d\n", *&arr[0]);

실행결과 icon_con

arr 자체의 값인 주소의 실제 값 : 100
arr[0]의 실제 값 : 100
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.