대략
int arr1[4] = {1,2,3,4}
int &arr2 = *arr;
이런식으로 코드를 짜면 저 arr1이랑 arr2랑 주소값이 같은건 arr2가 참조자라서 그런건 알겠는데,
보다보니 드는 생각이 이게 두개가 크기가 다른데(형이 다른데) 어떻게 한 주소값 안에 저장될 수 있는거냐?
하다가 도저히 이해가 안되서 질문한다. 답좀줘라 하...
대략
int arr1[4] = {1,2,3,4}
int &arr2 = *arr;
이런식으로 코드를 짜면 저 arr1이랑 arr2랑 주소값이 같은건 arr2가 참조자라서 그런건 알겠는데,
보다보니 드는 생각이 이게 두개가 크기가 다른데(형이 다른데) 어떻게 한 주소값 안에 저장될 수 있는거냐?
하다가 도저히 이해가 안되서 질문한다. 답좀줘라 하...
쉽게 말하면 {1,2,3,4}가 저장된 공간이름을 arr1이라고 선언한거고 참조자는 그 저장공간 이름을 하나 더 만든다고 보면됨
arr2가 arr1과 마찬가지로 저장공간의 이름이 되는거지
ㄴ 흠 결국 별명이란 소린데, 물어보고싶은게 같은 저장공간 안에 있는데 크기가 다를 수 있는거야?
어떻게 이해한지 모르겟는데 arr1이 배열의 앞을 가르키는 포인터라는건 알지?
해당 타입의 공간만큼 메모리를 확보하는거고, 배열의 이름은 해당 메모리의 첫 주소값이 된다
그러면 크기가 다르다는게 무슨의미야?
어? 그렇네? 아 주소만 있구나 아 사이즈오브 연산하면서 헷갈렸어 다들 땡큐