더블 포인터 , 배열 포인터 질문 드립니다.
티나
2023.04.01
질문 제목 : 더블 포인터 , 배열 포인터 질문 드립니다.
포인터 질문 드려요 ㅠ
질문 내용 :
#include stdio.h
void main()
{
int arr1[3][2] = { {1,2} , {3,4} , {5,6} };
int arr2[3] = {1,2,3};
printf(%d \n,&arr1);
printf(%d \n,arr1);
printf(%d \n,arr1[0]);
printf(%d \n,&arr1[0][0]);
printf(%d \n,*arr1);
printf(%d \n,**arr1);
printf(\n\n====================== \n\n);
printf(%d \n,&arr2);
printf(%d \n,arr2);
printf(%d \n,&arr2[0]);
printf(%d \n,arr2);
printf(%d \n,*arr2);
}
위에 코드에서 보면 제 생각으로는 &arr1,arr1,arr[0],&arr[0][0] 의 주소값이 모두 같기 때문에
*arr 출력했을시 1이라는 값이 나와야 될꺼 같은데 **arr1을 해야지 1이라는 값이 출력되네요.
1차원 배열 같은 경우에는 *arr2의 값을 출력하면 바로 1이라는 값이 나오는데...
이해될것 같으면서도 이해가 안되네요 ㅠ 자세히 답변 부탁드릴께요.~