請問if p NULL 與if p 這兩個條件語句有什麼區別?我在VC中執行時第一種寫法會出錯,第二種寫法執行成功

2021-05-15 05:50:25 字數 3357 閱讀 4053

1樓:匿名使用者

if(p!=null)與if(p) 的意思是一樣的,都是說p不是0時為真

null 是個巨集,其值為0 如果你程式出錯,可能是你沒有引用相應的標頭檔案

#include

2樓:

p 是指標。c++ 定義

#define null 0

c 定義

#define null ((void*) 0)p 是指標,p 要初始化。

if(p) -- p 為 0 等於假。非0 等於真版if(p!=null) 條件成立為真權,不成立為假如果 while(p!

=null 沒錯,if(p!=null) 也應當沒錯

你的錯誤資訊圖形看不清。

3樓:主頁

這兩個實現結果一樣,但有點區別,p!=null 返回的是bool值。

你需要定義 define null 0

if(null != p)和if( p!=null )在c語言中有什麼區別 具體是什麼意思!

4樓:天雲一號

if(null != p)和f(p != null)兩者並沒什麼區別,都是判斷指標p是否為空。

但是當考慮到出錯檢查時,if(null != p)寫法更好,因為如果誤寫為if(null = p)的時候,編譯器就會提示出錯(因為常量不能被賦值);而if(p != null)如果誤寫為if(p = null),則編譯器不會報錯。

5樓:量子高巨集亮

沒什麼區別,防止敲擊鍵盤是出錯時,編譯器是否能提示報錯。

if(null != p) 如果寫錯寫成if(null = p) 會報錯

if( p!=null )如果寫錯寫成if(p=null) 不會報錯一種程式設計小技巧,沒什麼的

6樓:匿名使用者

功能是一樣的,只是傳說中如果使用null != p則不容易出錯。因為有些人很粗心地把!=或==寫成=。

但我個人認為還是寫p != null比較好,這樣比較符合習慣。

if(null != p)和if( p!=null )在c語言中有什麼區別?具體是什麼意思?

7樓:姓邵名宇銘

有區別。

第一種寫法更安全 防止手殘寫成= 不報錯 不好找bug。

流程圖開始、初始化:首先是根據專案的要求確定要用到的變數與自定義的一些資料;這些是寫程式的第一步,相對來說是比較容易的。

流程圖主體:也就是專案所要達到的目的,畫出流程圖的行動方案、普通工作環節、問題判斷或判定環節、輸入輸出;這裡主要的重點是理清邏輯關係。

結束:有結束的程式要畫出來,一些無限迴圈的可以不用畫。

到此,一個完整的流程圖就畫出來了。

這些都是很容易就可以畫出來的,把複雜的簡單化,只要把流程圖畫出來就可以根據流程圖一步一步的把程式編寫出來。

流程圖的草稿畫完了,然後進行完善,從頭到尾的讀一次,看看是不是有漏掉的地方,如:判定的地方是不是要按鍵觸發等等。

檢查沒問題之後我們就可以根據流程與步驟,寫程式了。程式開頭和結尾是很容易的,而中間是要靠我們的基礎知識和平時的積累。

流程圖相當於題目,甚至比題目更加的清晰明瞭,所以新手寫程式不妨先畫一個流程圖在寫,其實一些大的專案,畫流程圖更是必須的,錯綜複雜的關係用流程圖就可以輕鬆的解析明白。

例如:設計一個低頻訊號發生器,下圖就是流程圖,只要根據流程圖編寫就可以很容易的把程式寫出來了。而這個專案的目的是能夠輸出正弦波、三角波、和方波訊號,並可以調整個新號的頻率;

根據上面所說:首先是開始、初始化,然後是通過按鍵判斷,判斷後是進行相關的操作(波形的產生,頻率的改變)。

每一件複雜的事情都是有很多簡單的事情構成的,解決了簡單的事情,複雜的也就慢慢的被解決了。

if(!p) if(p!=null) 這兩種寫法那種比較好? 10

8樓:匿名使用者

void delete(lnode* head) //刪除學生覆信制息

//if(p!=null) //出錯

if(p) //正確

else cout<<"沒有找到該學生資訊\n";

}沒什麼區別,防止敲擊鍵盤是出錯時,編譯器是否能提示報錯。

if(null != p) 如果寫錯寫成if(null = p) 會報錯

if( p!=null )如果寫錯寫成if(p=null) 不會報錯一種程式設計小技巧,沒什麼的

9樓:匿名使用者

使用前面一個,0的時也可以用!

10樓:全連的希望

這兩個的含義不一樣,不應該是if(!p)和if(p==null)?

11樓:

前面一個,少按好幾下按鍵呢,,

12樓:大唐行

差不多 還是前面的好些吧 萬一有的編譯器沒定義null

在c語言中,null等不等於0?假設p是一個指標變數,if(p);和if(p!=null);這兩個

13樓:冰川和企鵝

對這個問題的回答與「等於」所指的意思有關。如果你是指「與。比較的結果為相等」,例如:

if(/* ... */)

else

/* ... */

if(p==0)

那麼null確實總是等於0,這也就是空指標定義的本質所在。

如果你是指「其儲存方式和整型值。相同」,那麼答案是「不」。null並不必須被存為一個整型值0,儘管這是null最常見的儲存方式。在有些計算機中,null會被存成另外一些形式。

如果你想知道null是否被存為一個整型值0,你可以(並且只能)通過除錯程式來檢視空指標的值,或者通過程式直接將空指標的值列印出來(如果你將一個空指標強制轉換成整型別,那麼你所看到的很可能就是一個非零值)。

14樓:百度使用者

null意思是沒有定義任何內容 而0具有一定的數值意義

c語言裡int *p; if(*p==null)和if(p==null)有什麼區別 我不怎麼理解這

15樓:

帶*號是取值的意思,即取指向地址的值。

所以if(*p == null)是判斷指標p指向的地址儲存的值是否為null

if(p == null)是判斷指標p是否指向null希望對你有幫助。

16樓:聽不清啊

int *p;的話,

*p是一個int值,所以,if(*p==null)是不對的。

17樓:匿名使用者

不理解慢慢理解。用腦子。。。。。

訊息二則中殲滅與擊潰,佔領與控制這兩詞中兩個詞語的位置能前後互換嗎 為什麼

訊息二則中殲滅與擊潰,佔領與控制這兩詞中兩個詞語的位置能前後互換嗎?為什麼?因為二者是並列關係。句子中所填的詞語能否互換位置?為什麼 有的可以,有的不可以。例,1.小明和小紅一起去上學。這個可以 2.父親牽著小黃牛去地裡。這個,知道了吧 同意,請採納!有哪些詞把前後兩個字的位置調換意思不變?意思不變...

我外婆與女孩外婆是姐妹關係,請問我可以與這女孩結婚嗎

國家禁止直系血親和三代以內旁系血親的男女結婚直系血親是指有直系關係的親屬,從自身往上數的親生父母 祖父母 外祖父母 等均為長輩直系血親。從自身往下數的親生子女 孫子女 外孫子女均為晚輩直系血親,是與自己同一血緣的親屬。而兄弟姐妹 伯伯 叔叔 姨母和侄 甥等這些平輩 長輩 晚輩,都是旁系血親。所謂三代...

請問廣大攝友,騰龍的10 24和17 35這兩個廣角鏡頭那個比較好,價效比高

你說的這兩款嚴格意義上來說。是不衝突的吧 一個是超廣角。一個是廣角 17 35還是不要了 10 24還是不錯的 這兩款都不要,搭配一款適馬17 70mm f 2.8 4 dc macro os h 鏡頭 等效焦段是26 112mm 這是一款微距鏡頭。與你的騰龍70 300mm 112 480 組合,...