ここにコードがあります
int& fun(){
static int x = 10;
return x;
}
int main() {
fun() = 30;
cout<< fun();
getch();
}
出力は 30 です。これはどのように機能しますか?
ここにコードがあります
int& fun(){
static int x = 10;
return x;
}
int main() {
fun() = 30;
cout<< fun();
getch();
}
出力は 30 です。これはどのように機能しますか?
それは簡単です:この行によって割り当てられた関数内の変数への参照をfun返します:static30
fun() = 30;
これは、x関数内が に変更されることを意味し30ます。さらに何ですか?30です!fun()次の行で再度呼び出して印刷します。
静的変数はプログラムの最後まで存続することに注意してください: 関数が戻っても破棄されません!
fun関数は型への参照を返しますint。このようにして、 を呼び出すとfun() = 30、実際にxは 30 に設定されます。このように出力すると、fun関数はそれを設定しなくなります。これは 1 回限りの宣言であるためです。