1樓:匿名使用者
null,
大寫,有這樣的一個定義:
#define null 0
你能看到嗎?
看vc裡邊應該能看到
如果沒有小寫的null,你也可以這樣:
#define null 0
這樣就可以了,呵呵。
2樓:匿名使用者
這個要看你的開發環境中有沒有定義,定義的是哪一個。以前的vc6.0中有
#define null 0
c語言中:
#define null (void*)0也就是說null只是一個巨集定義,是大寫的,小寫沒有定義。並且null值分別是0和值為0的空指標。
3樓:銷
用大寫,另外null其實就是0,你可以直接寫0,方便一點
4樓:匿名使用者
這還用問!肯定是大寫,雖然系統沒規定,但人們形成一種共識,大寫代表常量,小寫代表變數,null的ascii碼是零
5樓:鵲鵲不才
大小寫都可以~~~~~~~~~~
在c語言中,是區分大小,例如:a和a是兩個不同的變數.為了便於區分,對於定義常變數,一般都用大寫,定義普通變數,一般都用小寫.所以,不管是定義常變數,還是定義普通變數,大小寫都可以.
6樓:匿名使用者
c中沒有null,只有巨集null
#define null 0
7樓:
c語言一般情況下 對大小寫沒有嚴格要求 你自己試試看小寫行不?大寫肯定行
c語言中當宣告指標為空時為什麼用大寫null而不用小寫null?
8樓:匿名使用者
因為null是在一個巨集,這個巨集通常在stdlib.h等標頭檔案中,如下所示:
#define null 0
9樓:匿名使用者
1.c中大小寫敏感
2.c語言規範中,常量定義建議用大寫
so,,,不用null,而用null
c語言中null是什麼意思
10樓:
在c語言中,
null和0的值都是一樣的,但是為了目的和用途及容易識別的原因,null用於指標和物件,0用於數值
對於字串的結尾,使用'\0',它的值也是0,但是讓人一看就知道這是字串的結尾,不是指標,也不是普通的數值
在不同的系統中,
null並非總是和0等同,null僅僅代表空值,也就是指向一個不被使用的地址,在大多數系統中,都將0作為不被使用的地址,所以就有了類似這樣的定義
#define null 0
但並非總是如此,也有些系統不將0地址作為null,而是用其他的地址,所以說,千萬別將null和0等價起來,特別是在一些跨平臺的**中,這更是將給你帶來災難。
11樓:匿名使用者
null 就是一個特殊的指標值, 其實本質是一個巨集#define null (void *)0也就是0值, 強制轉成了指標。
用來表示一個指標非法。 所以在初始化的時候經常用null來初始化。
由於是非法指標, 所以對這個指標取值(*操作)會導致程式崩潰。 必須要先指向一個有效空間才可以。
12樓:匿名使用者
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,而這個地址用於是不能訪問的,所以編譯器提示段錯誤。
13樓:樂跑小子
在標頭檔案 中 定義的一個常量 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,可以(並且只能)通過除錯程式來檢視空指標的值,或者通過程式直接將空指標的值列印出來(如果將一個空指標強制轉換成整型別,那麼=所看到的很可能就是一個非零值)。
14樓:育知同創教育
null,本意是"空的;元素只有零的"意思。計算機中通常表示空值,無結果,或是空集合。
null指標是一個無型別指標,並且值為0。一個指標,擁有2個屬性--地址值和指標型別。兩者的作用是:
1,地址值標識變數的首地址(32位系統下指標的地址值佔4位元組);2,指標型別告訴編譯器,應該怎樣進行接下來的資料訪問(int型陣列和float型陣列是不同的;陣列訪問與結構體訪問也是不同的;等等)。
15樓:66666順心
空的意思,其實不太好說明白!如果分配記憶體分配失敗如:
#include
#include
int main()
如果分配記憶體分配失敗,malloc函式就會返回一個null給p
16樓:陽光沒有眼睛
可以的null別定義為
#define null ((void *)0)
'\0'是字元,ascii是0
17樓:匿名使用者
c語言中null的意思就是空格的意思,用到的很多
18樓:高金山
#define null ((void*)0)
其值是0,但意義是空指標
'\0'的值也是0,但意義是字串結束符
19樓:匿名使用者
是空指標,指向地址為0的記憶體,在用法上,常用來表示不存在,例:if((fp=fopen("stu","rb"))==null)exit(0);
解析:如果開啟的這個名為stu的檔案不存在,就退出程式;
20樓:匿名使用者
null的定義是:
#define null (*(void*)0)簡而言之就是一個打包過的0.
while後面應該填寫
'\0' != *p
因為按照習慣,*p是一個字元變數.
但是你填
null != *p
或者就是
*p都可以.
21樓:匿名使用者
反正null就是0,一般用來形容指標是空的.
至於你說的null == '\0' , 只是因為'\0'也是數值0而已
22樓:匿名使用者
null, 大寫,有這樣一個定義: #define null 0 你能看到? 看vc裡邊應該能看到如果沒有小寫null,你也可以這樣:
#define null 0 這樣就可以,呵呵。
c/c++中,null和null的區別是什麼?
23樓:老夏的小可愛
c語言和c++對大小寫是敏感的,也就知是說null和null是區別對待的。null(如已巨集定義)代表空地址,null(如沒巨集定義)只是一個符號。
1、其實null和null都是字串,具體看它們巨集定義被定義成為什麼值。
2、在vs中null被定義為0,因為習慣上把巨集定義的所有字元都大寫,當把null它賦值給指標時意思為空,當然你也可以把null定義為0了,都一樣。你把0直接賦值給指標也行,只要指標指向0就為空。
3、對於空(null)指標的概念,在 c 標準中明確地定義:值為 0 的整型常量表示式,或強制**換)為“void*”型別的此類表示式,稱為空指標常量。
4、當將一個空指標常量賦予一個指標或與指標作比較時,將把該常量轉換為指向該型別的指標,這樣的指標稱為空指標。空指標在與指向任何物件或函式的指標作比較時保證不會相等。
擴充套件資料
在c中,任何型別的兩個空指標都保證比較相等。前處理器巨集null被定義為實現定義的空指標常量,它在c99中可以可移植地表示為0隱式或顯式轉換為型別的整數值void*(指向void的指標)。
c標準沒有說空指標與指向記憶體地址0 的指標相同,儘管在實踐中可能就是這種情況。解引用空指標是c中的未定義行為,並且允許符合要求的實現假定任何被解除引用的指標不為空。
參考資料
24樓:go陌小潔
null在c/c++標準庫中被定義為一個巨集,一般為:
#define null ((void*)0) /*c中的“標準”寫法,null被替換為一個void*型別的指標右值,值等於0;由於是void*型別,可以隱式轉化為其它型別的指標。
#define null 0 //c++,相對c簡化定義的原因是c++中void*無法自由隱式轉換為其它型別的指標,而字面量0可以隱式轉換為指標型別;儘管它實際上可以被作為整數0使用而不引起編譯問題,但要注意,從設計目的上而言,null應當總是隻作為空指標使用。
char c = null相當於char c = 0,也就是把c初始化為0。0在這裡並不是空指標的意思,而是隱式轉換成的字元'/0'——值為0的char字元。在c/c++的一般實現中,這樣的行為(值為0的數值型別,無論是void*或int,轉換為char的值還是0)是明確的,但這種用法並不恰當。
一如ls的錯誤,ascii及相容字符集中數值0對應的字元為null character(null terminator),應該用nul(沒有在標準庫中定義,語言中char型別用'/0',wchar_t型別用l'/0')而不是null表示。nul的一個重要應用是作為c風格字串的結尾標誌字元。
25樓:匿名使用者
是這樣的,c語言和c++對大小寫是敏感的,也就是說null和null是區別對待的。null代表空地址,null只是一個符號
26樓:匿名使用者
null代表空,而null沒有什麼特別的意義,不是關鍵字
27樓:匿名使用者
沒區別,但是可能有些軟體對大小寫敏感
c語言中的null
28樓:樂跑小子
在標頭檔案 中 定義的一個常量 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,可以(並且只能)通過除錯程式來檢視空指標的值,或者通過程式直接將空指標的值列印出來(如果將一個空指標強制轉換成整型別,那麼=所看到的很可能就是一個非零值)。
請問c語言中「0」與NULL的區別
完全不同.null是一個巨集定義,其定義形式為 void 0,也就是說,型別是一個void 指標,值為0.空格 是一個常量字元,型別為char,值為0x20即32.0是字串後面自動新增的字元,佔一個位置。而null作為c語言中的保留字,使用來對迴圈等進行判斷的。例如if null end明白了麼,如...
c語言中return的作用,C語言中return的作用?
作用1 表示返回,這個程式可以結束了,可以不帶引數,如果你的成員執行到這裡,你就不往後執行了,可以加一個return語句,就不會再執行了 作用2 返回指定型別的值,在定義函式的時候不是有 int af int 這裡是返回值,return 後面接的就是這個返回值,這個函式執行後就可以給別的變數賦值了,...
c語言中switch結構的使用,C語言中switch結構的使用
秋風依舊好 因為case後面不能接範圍,也就是說case後面是一個確實固定的常量.用下面的方法比較好,include int main 你可以先把範圍用字母或常量代替 再用switch語句 資料 include void main else printf score scanf d s system...