ホームページ > バックエンド開発 > C++ > C 参照は再割り当てできますか? それとも値の変更だけでしょうか?

C 参照は再割り当てできますか? それとも値の変更だけでしょうか?

Barbara Streisand
リリース: 2024-12-05 01:34:11
オリジナル
707 人が閲覧しました

Can C   References Be Reassigned, or is it Just Value Modification?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート