c c 中空指標,空指標常量,NULL

2021-07-02 16:49:50 字數 715 閱讀 2241

如何是乙個指標變數成為空指標:

如果 p 是乙個指標變數,則 p = 0;、p = 0l;、p = 『\0』;、p = 3 - 3;、p = 0 * 17; 中的任何一種賦值操作之後(對於 c 來說還可以是 p = (void*)0;), p 都成為乙個空指標,由系統保證空指標不指向任何實際的物件或者函式。

null: 是乙個標準規定的巨集定義,用來表示空指標常量。用 p = null; 來使 p 成為乙個空指標。

空指標的判斷:指標變數 p 是空指標的判斷:

if ( p == 0 )

if ( p == 『\0』 )

if ( p == 3 - 3 )

if ( p == null ) /* 使用 null 必須包含相應的標準庫的標頭檔案 */

if ( null == p )

if ( !p ) <—————(這裡和下面的if(p)都被專門說過一次,null定義不一定是0.這裡如果貿然使用!p會很危險的.所以這種寫法不能被提倡)

指標變數 p 不是空指標的判斷:

if ( p != 0 )

if ( p != 『\0』 )

if ( p != 3 - 3 )

if ( p != null ) /* 使用 null 必須包含相應的標準庫的標頭檔案 */

if ( null != p )

if ( p )

if ( p != q )

空指標常量

用vb.net 敲三層的時候,遇到了乙個素未相識的錯誤 變數 db 在賦值前被使用,可能會在執行時導致null引用異常 源自 dim db as loginmodel.dbutil using conn as new sqlconnection db.connstring 這是資料訪問層中score...

C C 指標常量和常量指標

常量指標 常量指標是指向常量的指標,指標指向的記憶體位址的內容是不可修改的。常量指標定義 const int p a p 告訴編譯器是常量,不能將 p作為左值進行操作。但這裡的指標p還是乙個變數,它的內容存放常量的位址,所以先宣告常量指標再初始化是允許的,指標也是允許修改的,例如 int a 0,b...

常量指標和指標常量 C C

按英文的字面意思,從右向左理解就比較清楚了 const char pointer 常量指標 底層const pointer to const 字面意思 指向常量的指標,不能通過這個指標修改指向的內容 char const pointer 指標常量 頂層const const pointer 字面意思...