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 ...