int& lameness()
{
int h=66;
return h;
}
int main()
{
int c;
c = lameness();
cout<<"c is "<<c<< endl;
system("pause");
return 0;
}
これはなぜ機能しますか? int hはローカル変数であり、関数スコープを終了すると破棄すべきではありませんか?C++単純参照型関数
これに私の機能を変更すると、警告なしで動作します。これはどんな点でより安全ですか? :
int& lameness()
{
int h=66;
int &a = h;
return a;
}