取消对 NULL 指针的引用
C 标准明确解决了取消对 NULL 指针的引用以获得引用的行为。这种做法被视为未定义行为。
在提供的示例中:
尝试取消引用 NULL 指针 ptr 被视为未定义行为。根据标准(8.3.2/4“引用”):
注意: 特别是,空引用不能存在于明确定义的程序中,因为创建空引用的唯一方法是这样的引用会将其绑定到通过取消引用空指针获得的“对象”,这会导致未定义的行为。
因此,将引用分配给取消引用的 NULL 指针无效,并且行为定义不明确。使用 ptr2 的结果(指向从取消引用的 NULL 指针获得的引用)也是未定义的。
禁止取消引用 NULL 指针的一个例外是与 sizeof 运算符一起使用时。在这种情况下,指针实际上并未被求值,因此取消引用它不会导致未定义的行为。但是,此异常仅限于 sizeof 运算符。
以上是当您取消引用 C 中的引用的 NULL 指针时会发生什么?的详细内容。更多信息请关注PHP中文网其他相关文章!