c 判斷指標為空 關於C中指標為空的判斷

2021-10-18 10:59:31 字數 431 閱讀 3351

在看c中指標是否為空的判斷說明時,出現了分歧。

if(ptr) /* 如果 p 非空,則完成 */

if(!ptr) /* 如果 p 為空,則完成 */

而我在林銳博士《c程式設計規範》一文中看到,為了和bool型別的判斷區分,他建議

判斷指標使用:

if( null == ptr) or if(null != ptr)這種方式。

但是,按照 「c++之父的c++聖經《c++程式語言 特別版》中說:

大家不要聽某些人說判斷指標是否為空用(p==null)或(p!=null)的格式,c++之父認為這樣寫是不好的,提倡直接寫(p)或(!p)的形式。 在win32開發中,if ( null == p )是極好的寫法。但不要寫成:if ( p == null ) 」中的說法又有不同說法。

那麼,我很迷惑,究竟那種寫法更合理,更規範呢?

需要判斷指標為空嗎

前幾天,kok3客戶端因為我的資源配置錯誤而崩潰了。偵錯程式帶我到了出錯的 行,是乙個空指標解引用。大致如下 item pitem itemlist.getitem index return pitem getitem方法如下 item itemlist getitem int index 錯誤是因...

this指標能否為空指標?

首先我們知道,this指標指向的是當前物件。空指標p同時訪問了 test 函式和 change 函式,在 test 函式呼叫過程中沒有報錯,但是在 change 函式中報錯了。void test person const this void change person const this 根據 t...

std string 賦值為空指標

今天執行的程式崩潰了,發現原因為程式中用到了stl的std string賦值為空指標,形式如下 void fun const char ptest 就其語法來說,是沒有錯誤的,但程式執行卻崩潰了。原因為 std string 不能接受賦值為空指標。原因為 std string 在賦值為空指標的時候,...