C 中引用的不可重置性
在 C 中,引用表现出两个定义特征:它们始终引用同一个对象,并且不能被重置。无效的。这与指针形成对比,指针可以切换对象目标并设置为 null。
不可重置引用的基本原理
尽管可重置引用具有明显的好处,但 C缺乏这样的功能。正如 Bjarne Stroustrup 在《C 的设计与演化》中所述:
“初始化后无法更改引用所指的内容。一旦初始化了引用,就无法使其引用不同的对象稍后对象;无法重新绑定。”
避免歧义
Stroustrup 的决定源于他使用 Algol68 的经验,其中可以通过引用本身或通过更改其引用值来重新分配引用。这种歧义可能会导致编程错误。
在 C 中,引用始终指向同一对象,从而消除了出现此类混淆的可能性。通过实施此限制,可以增强代码的清晰度和可维护性。
保留对象标识
引用与其目标对象保持强关联。这种牢固的连接确保了所引用对象的有效性。通过禁止重新分配,C 可以防止悬空引用,即引用指向无效内存位置的情况。
为什么不是常量、可重置选项?
有人认为恒定的、可重置的参考选项可以提供两全其美的效果。然而,这个概念会给语言带来额外的复杂性和潜在的歧义。
当前的行为(引用不可重置)确保开发人员可以依赖引用始终指向同一对象。这种简单性和可预测性超过了潜在的更灵活的参考系统所带来的好处。
以上是为什么 C 引用不可重置?的详细内容。更多信息请关注PHP中文网其他相关文章!