함수를 통해 미리 정의 된 포인터 변수로 참조 변수를 초기화 할 수없는 이유는 무엇입니까?함수를 사용하여 참조 변수를 포인터로 초기화
int * f(int * p) {
return p;
}
int main(){
int s=10;
int *p=&s;
int *&ref1 = p; //no error given here
int *&ref2 = f(p); //gives error cannot initialize int * & with int * why??
}
'f '의 구현을 보지 않고 "수정"을 제안 하시겠습니까? 컴파일러가 포착하지 못한 매달려있는 참조를 작성하여 다음과 훨씬 나쁜 문제를 만들 수도 있습니다. –
@DanielFrey 나는'main' 내부에 생성 된 포인터를 반환한다고 가정합니다. – 0x499602D2
그리고 어떻게 그 포인터를 얻을 것입니까? 'f'에 대한 매개 변수는 그 포인터의 * copy *이므로, 그것에 대한 참조를 반환 할 수 없습니다! –