我有以下功能(用 Visual C++ 2005 编写)
int &getInt_1()
{
int a = 5;
int &p = a;
int p1 = p; // Line 1
return p1;
}
int &getInt_2()
{
int a = 5;
int &p = a;
return p;
}
据我所知,上述两个函数都返回局部变量的地址。如果我是对的,那么我有一些问题如下:
上述功能有什么区别?为什么
getInt_1()
从编译器 ("returning address of local variable"
) 得到警告而getInt_2()
没有?是什么
Line 1
意思?之后Line 1
,是否也p1
成为引用a
?