-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
참조 질문이 있습니다
21.01.12 23:10 작성 조회수 117
0
struct Something
{
int v1;
float v2;
};
struct Other
{
Something st;
};
int main()
{
Other ot;
int &v1=ot.st.v1;
v1=1.0;
return 0
}
===========================
이코딩에서 일부분인
int &v1=ot.st.v1;에서 왼쪽 v1 과 오른쪽 v1 은 같은건가요 아니면 왼쪽 v1은 그냥 별명으로 둔건가요?
답변을 작성해보세요.
2
안소
2021.01.13
왼쪽 v1은 오른쪽 v1의 별명이 됩니다.
즉 실존하는 ot.st.v1 메모리를 v1 이라는 이름으로도 접근할 수 있게 된겁니다.
하나의 동일한 메모리 공간에 이름이 2개가 된 것이나 마찬가지에요. v1와 ot.st.v1
v1 = 1 해주고 ot.st.v1 을 출력하니 ot.st.v1도 1 이 된 것을 확인할 수 있습니다.
그리고 v1과 ot.st.v1의 주소가 같은 것도 확인하실 수가 있습니다. 동일한 메모리라는 얘기죠!
답변 1