C における参照のリセット不可能性
C では、参照は 2 つの決定的な特徴を示します。それらは一貫して同じオブジェクトを参照し、参照することはできません。ヌル。これは、オブジェクトのターゲットを切り替えて null に設定できるポインタとは対照的です。
リセット不可能な参照の理論的根拠
リセット可能な参照には利点があると認識されているにもかかわらず、Cそのような機能がありません。 Bjarne Stroustrup が「C の設計と進化」で述べているように:
「初期化後に参照が参照するものを変更することはできません。参照が初期化されると、別の参照を参照するようにすることはできません」後でオブジェクトをバインドし直すことはできません。"
回避曖昧さ
Stroustrup 氏の決定は、参照自体を通じて、またはその参照値の変更によって参照が再割り当てされる可能性がある Algol68 での経験に基づいています。この曖昧さにより、プログラミング エラーが発生する可能性があります。
C では、参照は一貫して同じオブジェクトを指すため、このような混乱の可能性は排除されます。この制限を強制することにより、コードの明確さと保守性が向上します。
オブジェクトのアイデンティティの保持
参照は、ターゲット オブジェクトとの強力な関連付けを維持します。この揺るぎない接続により、参照されるオブジェクトの有効性が保証されます。再割り当てを禁止することで、C はダングリング参照、つまり参照が無効なメモリ位置を指す状況を防ぎます。
なぜ定数でリセット可能なオプションではないのですか?
一部の人は、一定のリセット可能なリファレンス オプションは、両方の長所を提供します。ただし、この概念は、言語にさらなる複雑さと潜在的なあいまいさをもたらすことになります。
参照がリセットできない現在の動作により、開発者は参照を信頼して常に同じオブジェクトを指すことができます。このシンプルさと予測可能性は、より柔軟になる可能性のある参照システムの利点を上回ります。
以上がC 参照がリセットできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。