C での参照の再割り当て
C で参照を宣言するには初期化が必要であり、参照は不変で再割り当てできないという印象を与えます。ただし、次のプログラムについて考えてみましょう。
#include <iostream> using namespace std; int main() { int i = 5, j = 9; int &ri = i; cout << "ri is : " << ri << '\n'; i = 10; cout << "ri is : " << ri << '\n'; ri = j; // Is this not reassigning the reference? cout << "ri is : " << ri << '\n'; return 0; }
コードは正常にコンパイルされ、期待どおりの出力が生成されます。
ri is : 5 ri is : 10 ri is : 9
一般的な考えに反して、行 ri = j は参照を再割り当てしません。り。代わりに、行の前後に i を出力することで明らかなように、参照 ri を通じて i の値を変更します。この動作は、&ri と &i が同じアドレスを出力し、ri が i への参照のままであることを示すという事実によって裏付けられています。
対照的に、定数参照 (const int &cri = i) を宣言すると、参照の再割り当てが防止されます。それ自体。
以上がC 参照は再割り当てできますか? それとも値の変更だけでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。