在C語言中ifnull成立嗎

2021-03-04 00:15:27 字數 6090 閱讀 6496

1樓:匿名使用者

null 在 c 語言中為乙個巨集,定義為:

#define null 0

所以 if( null ) 即為 if( 0 )if( p ) 和 if( 0 ) 是完全不一樣的:

if( p ) 是判斷 p 是否為空,即 p 是否為nullif( 0 ) 返回的結果一定是 false

2樓:匿名使用者

乙個判斷指標,乙個判斷整數

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

3樓:姓邵名宇銘

有區別。

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

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

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

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

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

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

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

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

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

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

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

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

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比較好,這樣比較符合習慣。

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

7樓:冰川和企鵝

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

if(/* ... */)

else

/* ... */

if(p==0)

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

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

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

8樓:百度使用者

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

c語言中的null

9樓:樂跑小子

在標頭檔案 中 定義的乙個常量 null=0;

用於指將指標 懸空(不指向任何位置)樓上的指向0記憶體不對的.

int *p=null;

null是個好東西,給一出生的指標乙個安分的家

null不是被定義為0,就是被定義為(void *)0,這兩種值幾乎是相同的。當程式中需要乙個指標時(儘管編譯程式並不是總能指示什麼時候需要乙個指標),乙個純粹的零或者乙個void指標都能自動被轉換成所需的任何型別的指標。

null總是等於0嗎?

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

if(/* ... */)

else

/* ... */

if(p==0)

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

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

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

10樓:匿名使用者

c語言null定義,定義如下:

#undef null

#if defined(__cplusplus)#define null 0

#else

#define null ((void *)0)#endif

所以我覺得,如果乙個指標被賦予null,應該就相當於這個指標執行了0x0000這個邏輯位址,但是c語言中0x0000這個邏輯位址使用者是不能使用的(有些人說是因為0x0000沒有對映到實體地址,也有人說是因為0x0000對映到的位址是作業系統用於判斷野指標的,我也不太懂,總之就是使用者不能使用啦),所以當你試圖取乙個指向了null的指標的內容時,就會提示段錯誤,聽著有點繞,看程式:

int *node=null;

int a=0;

a=*node;

printf("%d\n",a);

由於node執行的是null,也就是邏輯位址0x0000,而這個位址用於是不能訪問的,所以編譯器提示段錯誤。

11樓:d小太陽

在c語言中,null和0的值都是一樣的,但是為了目的和用途及容易識別的原因,null用於指標和物件,0用於數值。對於字串的結尾,使用'\0',它的值也是0,但是讓人一看就知道這是字串的結尾,不是指標,也不是普通的數值。

拓展資料:

關於null的使用

程式設計工作中有一模擬較容易犯的錯誤--指標位址未進行正確的更新賦值就加以使用,這往往會造成很嚴重的後果(對記憶體區進行錯誤的塗抹)。所以乙個良好的習慣是,當乙個指標的工作稍事休息,先把它賦值為null,待到再度使用時,重新對其賦值以及進行指標型別轉化。

前面說到"null指標無法再進行任何資料訪問",其實是視編譯器功能而定的。0位置指向的是程式起始,對於不同的編譯器,null指標的操作結果是不同的:有些是不准讀寫,有些是唯讀,甚至讀寫都允許。

編譯器是人定的。

12樓:高金山

#define null ((void*)0)

其值是0,但意義是空指標

'\0'的值也是0,但意義是字串結束符

13樓:陽光沒有眼睛

可以的null別定義為

#define null ((void *)0)

'\0'是字元,ascii是0

14樓:匿名使用者

null的定義是:

#define null (*(void*)0)簡而言之就是乙個打包過的0.

while後面應該填寫

'\0' != *p

因為按照習慣,*p是乙個字元變數.

但是你填

null != *p

或者就是

*p都可以.

15樓:匿名使用者

null, 大寫,有這樣乙個定義: #define null 0 你能看到? 看vc裡邊應該能看到如果沒有小寫null,你也可以這樣:

#define null 0 這樣就可以,呵呵。

16樓:匿名使用者

指標可以賦值null,但數值只能賦值為0.*p是表示指標p指向記憶體塊中的值。所以不能賦值給null。null不相當於0.

'\0'就更不是了。它是表示什麼也沒有。例如指標被賦值了null表示這個指標沒有指向任何位址。在c++中指標可以賦值為0,表示為null。而0表示個數值在c中。

這個**while() 這裡好像有錯誤。

17樓:匿名使用者

反正null就是0,一般用來形容指標是空的.

至於你說的null == '\0' , 只是因為'\0'也是數值0而已

18樓:匿名使用者

tv在 6000008i。,,個

+涼皮。了

19樓:唐甄甄甄

應該是p!=null

null在c語言中被判為真還是假?

20樓:匿名使用者

null就相當於是0一樣的 , 所以 在判斷中 絕對是假的 , 那麼printf("null"); 這條語句 也 絕對不會執行 , 實驗證明。。。

21樓:匿名使用者

不會執行,因為null代表的是0,而if(null)為假,所以不執行if下的語句!

22樓:匿名使用者

null的值是0

printf("null");這個當然會執行,這裡只是字串

c語言中null什麼意思

23樓:

在c語言中,

抄null和0的值都是一樣的,但是為了目的和用途及容易識別的原因,null用於指標和物件,0用於數值

對於字串的結尾,使用'\0',它的值也是0,但是讓人一看就知道這是字串的結尾,不是指標,也不是普通的數值

在不同的系統中,

null並非總是和0等同,null僅僅代表空值,也就是指向乙個不被使用的位址,在大多數系統中,都將0作為不被使用的位址,所以就有了類似這樣的定義

#define null 0

但並非總是如此,也有些系統不將0位址作為null,而是用其他的位址,所以說,千萬別將null和0等價起來,特別是在一些跨平台的**中,這更是將給你帶來災難。

24樓:匿名使用者

null,值為0,一般在c語言中表示空指標

25樓:匿名使用者

#define null 0

怎樣在c語言中輸入null

26樓:匿名使用者

函式的宣告:

char *gets(

char *buffer

);它有乙個引數buffer,指向char型別的指標。指向輸入字串緩衝區位址。如果函式調

內用成功則它的返回容值為buffer的位址,如果呼叫失敗則返回null。

所以while(gets(buff)!=null)這行**就是只要gets函式呼叫失敗就停止迴圈,但一般這個函式呼叫失敗的機率是很小的,所以就出現了死迴圈。要明白這一點必需知道,gets函式的返回值為輸入字串的位址,而null不等於空字串,也不等於空字串的位址。

把那個程式改為如下的形式就對了。

#include "stdio.h"

main()

/*注:strcmp為字串比較的函式,當兩字串相同時返回0*/

在c語言中若有定義,在c語言中,若有定義inta1,b2,c3,d4,x5,y6,則表示式xa

inta 1,b 2,c 3,d 4,x 5,y 6 則表示式 x a b y c d a b 不成立 則為假為0,x 0.符號要求倆個都為真才輸出真,所以表示式為假等於0 在c語言中,若有定義 int y 3,x 7 1,2,3,4,5,6,7 則表示式y x 5 的值 為 求解釋。定義乙個整形陣...

在C語言中ppp,在C語言中, p p p p 有什麼區別

我看書中解釋 p 是先取出 p的值,再使p加1 p是個指標,給p加1,相當於讓p指向了x所在位址的下乙個位置,而對於x則是沒有任何影響 p 是使 p的值加1.p則是p指向的位置對應的值,題目中是 q,所以此時的 q就是x的值,為3,當輸出 q之後,再給 q即x自加1,所以x就變為4 付費內容限時免費...

在c語言中,在C語言中ch c A a 是什麼意思,其中ch和c是字元

在c語言中ch c a a 的意思是,是把表示大寫字母的變數c轉換為小寫字母的語句,使用前一般要先判斷一下的,如下 if c a c z ch c a a 因為當c b 時,c a 就等於1,然後1 a 就是 b 如果事先不檢測的話,當c不是大寫字母時作這樣的轉換是會無法理解的。在c語言中ch c ...