강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

jsh4059님의 프로필 이미지
jsh4059

작성한 질문수

홍정모의 따라하며 배우는 C++

6.14 참조 변수 reference variable

참조 질문이 있습니다

작성

·

190

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은 그냥 별명으로 둔건가요?

답변 1

2

왼쪽 v1은 오른쪽 v1의 별명이 됩니다. 

즉 실존하는 ot.st.v1 메모리를 v1 이라는 이름으로도 접근할 수 있게 된겁니다. 

하나의 동일한 메모리 공간에 이름이 2개가 된 것이나 마찬가지에요. v1와 ot.st.v1

v1 = 1 해주고 ot.st.v1 을 출력하니 ot.st.v1도 1 이 된 것을 확인할 수 있습니다.

그리고 v1과 ot.st.v1의 주소가 같은 것도 확인하실 수가 있습니다. 동일한 메모리라는 얘기죠!

jsh4059님의 프로필 이미지
jsh4059

작성한 질문수

질문하기