배열도 포인터잖아요.


그런데,


arr[3] = {1,2,3};

선언을 하고


printf ("%p", arr);

printf ("%p", &arr);


두 문장다 똑같이 arr[0] 주소값을 보여주는 이유가  이해가 안가거든요?


배열 arr[0]의 주소를 어딘가의 상수가 보유해야하고, 그 상수가 됐든 변수가됐든 그것의 주소값이 반환되야하는거 아닌가요?



예를들어서 포인터 변수의 경우에는


int num;

int *arr = #


printf ("%p", arr);

printf ("%p", &arr);



arr의경우에는 변수num의 주소값을

&arr의 경우에는 포인터변수 arr의주소값을 보여주니까, 이게 맞는거같은데...


배열의 경우는 배열의 주소를 가르키는 변수를 따로 안만드는거에요?