본문 바로가기

Study/C programming language

C에서 배열이름의 정체는??



위의 결과를 보면 3가지 값 모두가 똑같다.
배열이름은 배열의 첫번째 인덱스의 주소값을 가지니 a == &a[0]는 당연히 맞는 말이다.
하지만 a 라는 값(즉 배열의 주소가 저장되는 공간) 자체도 어딘가 메모리 공간에 할당될테고 (주소값을 저장하는 메모리공간 = 포인터) 다시 말해 &a 를 출력했을시 어딘가 다른 메모리 주소가 출력되야 하는데 그렇질 않다.
게다가 sizeof 연산을 해보면 배열이름의 저장 공간은 포인터 크기가 아닌 배열 전체의 크기가 나오는데
이걸 어떻게 이해해야 하는지 -_-;;
배열이름은 배열의 크기 정보까지 저장하고 있는 포인터의 또다른 확장이란 말인가 .....