次の関数があります (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
ますか?