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