0
私はのように、関数のローカル変数への参照を返すために未定義だということを理解する:ローカル変数へのREFを戻す
int& returnIntRef_One()
{
int value = 5;
return value;
}
しかし、この機能で:
int& returnIntRef_Two()
{
int i = 5;
int &value =i;
return value;
}
値が正常に返されるようです。
誰かが私にその違いを教えてもらえますか?
は
未定義の振る舞い – Jovasa
両方のスニペットが等しく、2番目のスニペットはコンパイラにいくつかのヒントを追加するだけです。 –
"ローカル変数への参照の返却" ...はその変数が 'static'宣言されていない限りnoです。 –