通常の参照ではなく、const 参照では右辺値を渡すことができるのはなぜですか?
C では、右辺値を渡すことができます (一時オブジェクト) を const 参照によって使用します。これにより、参照が通常の有効期間を超えて一時変数を指すことができるようになります。ただし、この動作は通常の (非 const) 参照では許可されません。
具体的には、const 参照は、参照する実際のオブジェクトのプレースホルダーとして機能します。 display(5) のリテラルのように右辺値を指す場合、コピーを作成せずに値にアクセスして操作するメカニズムが提供されます。 const 修飾子は、参照されるオブジェクトの変更を防ぎ、右辺値の整合性が確実に維持されるようにします。
ただし、const 修飾子がないと、通常の参照は、参照されたオブジェクトの後に存在しない一時オブジェクトに再バインドしようとします。寿命が終わる。この動作は未定義であり、予期しない結果やメモリ破損につながる可能性があります。
以上が質問の形式と記事の焦点を考慮した、いくつかのタイトルのオプションを次に示します。 直接的かつ簡潔: * const 参照では右辺値を渡すことができるのに、通常の参照では渡せないのはなぜですか? * なぜそうなるのかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。