다음 두 코드 간의 차이점을 찾기 위해 열심히 노력했습니다. 나는 그것이 y=10
반환 된 프로그램을 실행했을 때C++에서 참조 변수 저장
int& foo()
{
int z=10;
return z;
}
main()
{
int y=foo();
cout<<y;
return 0;
}
다음은 오류가 발생하지 않는 반면
이 ...
int z=10;
int y=&z;
은 ... 유효하지 않습니다.
내 질문은 :
y
경우 foo()
를 사용하여 다른 변수의 참조를 저장할 수 있습니다, 왜 직접 y=&z
를 사용하지?
'& z'가'int'에 대한 포인터이기 때문에 처음으로 잘못되었습니다. 두 번째 변수는 지역 변수에 대한 참조를 반환하기 때문에 정의되지 않은 동작입니다. – juanchopanza
"int y = & z"여기에 주소를 저장하고 있습니다 ... 참조가 아닙니다 ... –