int main(void) {

int a[][3] = { 4, 5, 6, 1, 2, 3, 7, 8, 9 };

printf("%d\t,%d ,%d\n", a, &a, &a[0][0]);

printf("%d\t,%d \n", a + 1, *(a + 1));


return 0;

}


여기서 출력하면 


1831916, 1831916, 1831916

1831936, 1831936


이렇게 나오는데

 

1. a= a[0][0]의 주소인건 알겠습니다. 그런데 왜 &a의 값이 a와 같아요?

a값과 a의 주소가 같을수있어요?


2. a+1이 포인터 연산으로 인해 주소가 20증가해서 1831936인건 알겠는데


*(a+1)이렇게 하면 a+1의 주소가 가리키는 값 이니까 1나와야 되는거 아니에요? 왜 주소가 나오나요?