請問0, 00 ,null的區別

2022-05-07 11:35:16 字數 5711 閱讀 3247

1樓:匿名使用者

這個問題很糾結,就像有人提出1+1=?的問題一樣糾結。

我以為,你還是從實際出發,你到底想達到什麼目的。如果純是如1+1這樣的,那得作為學術研究來做。所有這些都是以環境決定它的屬性,不同的角度會有不同的結果。

2樓:人生如霧亦如夢

0一般是整數型別

'0'是 char型別

'\0'是字串結尾系統加上去的,不會顯示,也不會單獨存在null代表空,一般是指標沒有分配記憶體區域

3樓:匿名使用者

不知道你問這個問題的基礎在**,也不知道你想要理解多深,如果從最原始的角度來講,'\0',null,'0',是一樣的,他們都代表了一個8位的char型別,至於0,可以表示的就太多了,他可以是char,int,long,double,float,但是毫無以為,值是0,如果為了方便在這裡解釋,我們暫時認為這幾個東西都是char(字元)型別的,某些地方也叫byte(位元組)。

那麼在計算機記憶體中,0,'\0',null,是一樣的,值也是一樣的,都是0。以數字的方式讀取就是0,以字串的方式讀取就是'\0',以程式命令或者其他方式讀取就是null(null的定義跟編譯器有關,有的編譯器定義null可能不是0)。

至於'0',他在記憶體中存著的是48,也就是說,以數字的方式讀取是48,以字元的方式讀取是'0',

那麼你說0+'0'等於什麼呢?反正他肯定不是0了。他會是'0',或者是48,看你以什麼方式讀取,printf中的%d,%c,就是讀取方式。

c語言的字串,\0'null,有什麼區別

4樓:匿名使用者

\0是字串結束符,暫用一個位元組,放在記憶體裡其實就是0x00。

null是空地址,不佔用任何位元組,是用來給指標賦值的。其實就是0地址,這個地址在c語言裡面是不允許訪問的,訪問會出異常。

比如int * p = null,int *q,q的值是一個隨機值,p的值就是0x0。

c++中「null」和「0」的區別是什麼?

5樓:若葉七夜西

0是一個數字,本身有著一些原生的特性諸如:起始,沒有,正負的分界線,0/1中的0還可以表示否定。0可以表示數字0,也可以表示ascii碼值為0的字元。

null用於將指標指定為空指標,也就是說該指標不指向任何物件,不可以對該指標進行解引用,否則系統會報錯。

在數值上null,'\0',0是一樣的,都是0,但'0'就不同了,在ascii碼中編碼為48,所以字元0和上述三個值不同。

什麼是 null?

[6.3.2.

3-footnote] the macro null is defined in (and other headers) as a null pointer constant

即 null 是一個標準規定的巨集定義,用來表示空指標常量。因此,除了上面的各種賦值方式之外,還可以用 p = null; 來使 p 成為一個空指標。

指標的概念

指標是一個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的一個地址。要搞清一個指標需要搞清指標的四方面的內容:指標的型別,指標所指向的型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。

malloc 函式在分配記憶體失敗時返回 0 還是 null?

malloc 函式是標準 c 規定的庫函式。在標準中明確規定了在其記憶體分配失敗時返回的是一個 「null pointer」(空指標):

[7.20.3-1] if the space cannot be allocated, a null pointer is returned.

對於空指標值,一般的文件(比如 man)中傾向於用 null 表示,而沒有直接說成 0。但是我們應該清楚:對於指標型別來說,返回 null 和 返回 0 是完全等價的,因為 null 和 0 都表示 「null pointer」(空指標)。

『\0』:『\0』是一個「空字元」常量,它表示一個字串的結束,它的ascii碼值為0。注意它與空格' '(ascii碼值為32)及'0'(ascii碼值為48)不一樣的。

在c/c++中,當要給一個字串新增結束標誌時,都應該用『\0』而不是null或0。

當我們要置一個指標為空時,應該用null,當我們要給一個字串新增結束標誌時,應該用『\0』。

什麼時候用0什麼時候用null什麼時候用『\0』

6樓:匿名使用者

其實這三個bai東西在數值上是一du樣的,就好像zhi65和'a'在數值上也是一樣的dao

。他們的不同在於類回型,這決定了它們答使用的場景不同。

0一般用於表示數字的型別,如int,floatnull一般用於給可空型別(又稱引用型)變數進行初始化,如指標,string,自定義類

'\0'是一個字元,所以它的一般存在於字元變數和字串中,一般也作為字串的結束符

7樓:謝應宸

三者在記憶體中復的值都是制0

null一般用在指標或者物件

vc中這樣巨集定義

#ifndef null

#ifdef __cplusplus

#define null 0

#else

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

#endif

'\0'用於字串

0可以用數值,後兩者

8樓:匿名使用者

其實很簡單,0就是數字0,沒什麼其他意義。

null可以是指標不指向任何值時,初始化為空。空指標就是這樣的:int *a=null;

'\0'是字串結束符,佔1個位元組。

9樓:糖辛_米拉_堯

null

其實就是

#define null 0

也就是說它就是0

不過是寫**的時候為指標什麼的賦值或判斷指標是否為空時看起來直觀一些

10樓:匿名使用者

c標準裡#define null (void *)0

c++標準裡 #define null 0

php 0 和null的區別

11樓:匿名使用者

null和0是值相等而型別不一樣!

注意:null是一種特殊的型別.

兩種情況下為null

1. $var = null;

2. $var;

3.0、"0"、null以及沒有任何屬性的物件都將被認為是空的。

舉例如下:

<?php

$test=0;

if($test=='')

if($test==='')

if($test==null)

if($test===null)

if($test==false)

if($test===false)

?>

12樓:

//用全等判斷,如果為null 就是空

//否則就是0了

if($value === null)

13樓:匿名使用者

應該這樣:

if ( ! empty(value))

這樣就可以了。

14樓:

0代表假 但他是有值的,而null雖然有可以代表假,但如果判斷他是否有值的話,他是沒有值的。

15樓:匿名使用者

這個時候就不能這樣寫了,你用if(value!=""){}試試,應該就好了!因為if是判斷條件的,一般都是真或者假,在計算機語言裡真一般用1代替,假一般就是0!所以會出現誤差

16樓:_水墨意境

if (value) value是個boolean型的,進來的值會自行轉換成boolean型的,0 == false 所以就遮蔽了

17樓:

推薦你掌握好以下3個函式

empty($var): 測試$var是不是空值,空值返回true, '', 0, null, false都是空

is_null($var): 測試$var是不是null,未定義變數會有notice級別提示並返回true(好像是返回true)

isset($var):測試$var是不是已經被宣告

例如if (isset($var) && empty($var) && ! is_null($var)) 如果$var是非null的空置則執行if

另外,也可以藉助全等操作符===

0是數字或表示flase,你可以理解為是代表一個盒子裡面是空的。而null表示沒有,就是連盒子都沒有。

18樓:樹茲萬世策

null 在幾乎所有的程式語言中都表示空,你比如說 a = null;//這表示這個陣列是空值陣列,null就是個空指標;

但是a = ;//這個則表示首元素值為」0「 ,這是一個具體實現;

廣義上講,可以把null定義成0;

這裡就可以看出他們

意義不一樣,null表示的是無效地址,而0是這個無效地址的一個實現;

19樓:澤秋苓

if(value != '')

或者if(is_numeric(value))

20樓:匿名使用者

嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻

21樓:匿名使用者

我也想知道,我頭簡歷不給我信。。嗚嗚~~~~(>_<)~~~~

22樓:

0不為空

null是一個型別

23樓:大贏子

0可以表示false,也可以表示數字0;null是為空的意思,就是什麼都沒有

24樓:安靜的少年

0是算個字元,null標準的空

25樓:匿名使用者

生態環境所認同和深入推進

null與'\0'有什麼區別?

26樓:匿名使用者

在vc編譯器中null的定義是#define null (void*)0

這就說明null是0;但是在計算機中0有很多。當他的資料型別不一樣的時候即使都是0,但表意不一樣。所以null在不同的計算機中也可能不一樣。

總的情況來說。

『\0』可定是一個位元組,十六進位制表示為 0x00null在以32位為索引的編譯器中,是4個位元組 0x00000000null在64位的情況為8個位元組0x0000000000000000

27樓:匿名使用者

在字串時沒區別!

而null可以在很多地方使用!

\0僅用在字串時!

28樓:w支持者

null就空值,一般用來表示指標的空值。

而'\0'則是一個字元常量,空格

29樓:匿名使用者

null是一個指標值

'\0'是一個字元值

30樓:匿名使用者

某些時候沒區別字元是表四『o'

在指標是表示0

31樓:匿名使用者

是啊,null是指標,『\0'是字元。

C中的null和資料庫中的null的區別

兩者一般用來表示未定義,但是資料庫值為null時在c 中使用類dbnull來表示。資料庫的null為預設值,而c 中的為空,但是在記憶體中已經分配了空間 樓上的描述對資料庫null有問題吧,資料庫的null代表未知,沒有特定意義,所謂的預設值,不填寫的話,雖然看到的是null,但不代表是預設的意義。...

請問摔跤,摔交,摔角的區別,摔跤和摔角的區別

摔跤是一項世界上最古老而引人入勝的競技專案。早在古時代就產生了最簡單的角力方法。它的產生和發展是和人類的各種勞動形式相互聯絡的,與其它運動專案如球類等有所不同,例如球類中的籃球 足球 手球的產生是在某地區 某國家,而摔跤幾乎是產生在世界民族之中,因為在原始社會,世界上各族人民為了取得生存,在與自然界...

請問分辨分辯辨別辯解的區別

分辨 指把多個事物或者人區別開來,而 分辯 多指用語言進行解釋。而 辯解 與 分辯 意思相近,區別在於 辯解 層度更深。辨別 指對多個事物的認識及區分,也就是在 分辨 的層度上再加以認識。1 分辨是指區分和辨識某種事物。在用法上,傾向於用眼睛看,用腦子思考2 分辯指辯解某一種自己否認的話題。在用法上...