배열의 주소값에 대해서 궁금한게 있습니다.
꿈
배열의 주소값에 대해서 궁금한게 있습니다.arr 과 &arr[0] 과 arr[0]의 값에 대해서..질문 내용 :
안녕하세요~
c언어 공부 시작한지 얼마 안되는 초보가 궁금한 것이 있어서 질문 드립니다.
책을 보면서 공부하다가 배열과 포인터의 관계 정도까지 왔는데요.
주소값이란 것을 알아가면서 이해가 안가는 것이 점이 있어서 여쭤볼게요.
#include stdio.h
int main(void) {
int arr[5] = {1,2,3,4,5};
printf(arr[0] = %d\n, arr[0]);
printf(&arr[0] = %d\n, &arr[0]);
printf(arr = %d\n, arr);
printf(&arr = %d\n, &arr);
return 0;
}
요런식으로 만들어서 결과를 봤는데..
arr[0] = 1
&arr[0] = 1245036
arr = 1245036
&arr = 1245036
이런 결과가 나옵니다.
이해가 안가는 것은..
arr과 arr[0]의 주소값이 같은데..
저장되어 있는 값이 arr은 1245036 , arr[0] 은 1로 다르더라구요.
같은 메모리 주소에 저장되어 있는 값이 다르다는 점이 이해가 되질 않습니다.
이해 하기 쉽게 설명 좀 부탁드립니다.
-
후예
ㅎㅎ 찾아야죠~ ㅋㅋ
-
진달래
월이~~ 이바는 찾으셨어요? ㅋㅋㅋ
-
해찬솔
감사합니다~ ^^
-
희미해
&arr[0] 으로 값을 표시 할려 했기 때문입니다. - 주소값을 가르키기 때문에 표시 되는것도 주소값이 표시 되는것입니다. 배열의 arr == &arr[0] 은 표연 방식이 같다고 볼수 있습니다.