首頁 > 後端開發 > C++ > 當您取消引用 C 中的引用的 NULL 指標時會發生什麼?

當您取消引用 C 中的引用的 NULL 指標時會發生什麼?

Mary-Kate Olsen
發布: 2024-12-15 01:24:10
原創
241 人瀏覽過

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

取消 NULL 指標的引用

C 標準明確解決了取消 NULL 指標的引用以獲得引用的行為。這種做法被視為未定義行為

在提供的範例中:

int* ptr = NULL;
int& ref = *ptr;
int* ptr2 = &ref;
登入後複製

嘗試取消引用 NULL 指標 ptr 被視為未定義行為。根據標準(8.3.2/4「引用」):

注意: 特別是,空引用不能存在於明確定義的程式中,因為創建空引用的唯一方法是這樣的引用會將其綁定到透過取消引用空指標所獲得的“物件”,這會導致未定義的行為。

因此,將引用分配給取消引用的 NULL 指標無效,且行為定義不明確。使用 ptr2 的結果(指向從取消引用的 NULL 指標獲得的引用)也是未定義的。

禁止取消引用 NULL 指標的例外是與 sizeof 運算子一起使用時。在這種情況下,指標實際上並未被求值,因此取消引用它不會導致未定義的行為。但是,此異常僅限於 sizeof 運算子。

以上是當您取消引用 C 中的引用的 NULL 指標時會發生什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板