작성
·
579
0
답변 1
1
안녕하세요. 질문의 출처가 되는 연관 강의를 꼭 기재해주실 것을 부탁드립니다. :)
연관 강의를 적어주지 않으셔서 질문자님께서 어디까지 강의를 들으셨는지 모르겠지만..! 배열의 이름에 & 가 붙어도 "배열의 이름의 주소"가 되는 것이 아닌!! 값은 배열 이름과 그대로 동일합니다. 강의에서 배열 이름에 & 붙여도 그대로 배열 이름 값이라고 배우셨을거에요. 혹은 앞으로 배우시거나요..!
arr 가 배열 이름이라면 arr 와 &arr 은 값이 같습니다. 배열의 이름의 주소는 그냥 배열의 이름값일 뿐입니다. 포인터의 포인터, 즉 이중 포인터로 처리 되지 않아요. 배열의 이름은 포인터처럼 값을 맘대로 바꿀 수 있는 그런 "변수"가 아니기 때문입니다. 이러한 특수성때문에 이런 현상이 발생하는 것이라고 생각해주시면 될 것 같아요 :) 우리가 int a = 3; 으로 한다면 이 3 이라는 값의 주소는 개발자가 알 수가 없죠? 변수도 아닐뿐더러 접근도 불가능합니다. 배열 이름도 그러한 맥락이라고 생각해주시면 됩니다.
(arr[0] 은 {1,2,3} 배열의 이름이나 마찬가지라고 보시면 됩니다. 그러니 arr[0] = &arr[0] 인거에요!)