誰かが以下のコードスニペットの出力が20
である理由を説明してもらえますか?そして10
が表示され変数の参照とアドレス(メモリの場所)
int i = 10;
cout << i << endl;
int &r = i;
r = 20;
cout << i << endl;
まず、変数i
格納整数値10
。 はその後r
のアドレス(r
のメモリ位置)が10
そしてr
20
なりしかし、なぜ20
からi
変更などもあるi
に設定されていますか?
r
の整数の内容は変更されていますが、そのアドレス(メモリの場所)は変更されていません。
おかげで、
背後に何が起こっているか、基本的には
* Aポインタですが、*はオブジェクトです。 – SRM
だからこそ私は基本的に何が起こっているかを舞台裏で語った* –