参照を返す関数の取り扱いについて、わからない点があったので、短いですが投稿します。
C++の以下のコードを実行したところ
int global_int=0;
int &f(){
return global_int;
}
int main(){
f()++;
cout << global_int << "\n";
}
1
となりました。しかし次のコードを実行したところ
int global_int=0;
int &f(){
return global_int;
}
int main(){
int x;
x = f();
x++;
cout << global_int << "\n";
}
0
となりました。この二つのコードが違う動作をする理由がわかりません。どなたか教えていただけないでしょうか?