首页 > 后端开发 > C++ > 当您取消引用 C 中的引用的 NULL 指针时会发生什么?

当您取消引用 C 中的引用的 NULL 指针时会发生什么?

Mary-Kate Olsen
发布: 2024-12-15 01:24:10
原创
242 人浏览过

What Happens When You Dereference a NULL Pointer to a Reference in C  ?

取消对 NULL 指针的引用

C 标准明确解决了取消对 NULL 指针的引用以获得引用的行为。这种做法被视为未定义行为

在提供的示例中:

尝试取消引用 NULL 指针 ptr 被视为未定义行为。根据标准(8.3.2/4“引用”):

注意: 特别是,空引用不能存在于明确定义的程序中,因为创建空引用的唯一方法是这样的引用会将其绑定到通过取消引用空指针获得的“对象”,这会导致未定义的行为。

因此,将引用分配给取消引用的 NULL 指针无效,并且行为定义不明确。使用 ptr2 的结果(指向从取消引用的 NULL 指针获得的引用)也是未定义的。

禁止取消引用 NULL 指针的一个例外是与 sizeof 运算符一起使用时。在这种情况下,指针实际上并未被求值,因此取消引用它不会导致未定义的行为。但是,此异常仅限于 sizeof 运算符。

以上是当您取消引用 C 中的引用的 NULL 指针时会发生什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板