C語言中的NULL零的是什麼,C語言中NULL是什麼意思

2021-04-19 07:32:53 字數 4957 閱讀 2562

1樓:匿名使用者

每個位元組在

復c語言裡都是一個char,字元制串是連續的bai序列的位元組來表示du的。按照這種

zhi定義,為了避dao

免在表示字串的時候是無休止地連續下去的位元組序列,需要用一個特殊的標記來表示字串的結束。而這個標記就是null.而作為人類可閱讀的字串,我們不需要這個null,所以在寫**類可閱讀的字串的時候,末尾都隱藏著一個值為null的位元組。

2樓:捐你妹

c風格的字串,為了表示字串在什麼地方截至,會預設新增一個'\0'。這裡的反斜槓就回是轉義符,答表示是真正的零。也就是記憶體中就是零,而不是數字零。

但是如果純粹是為了記錄字元陣列,這個零就不存在了。也就是說,如果你僅僅是要記錄一串字元,那麼是可以這樣寫的:char b[6] = " world";但是如果這麼寫,在輸出的時候就不能使用%s的方式,因為結果不可預知了。

3樓:匿名使用者

c中,null=0;字元表示是null='\0';c中的字串都以'\0'結尾,在用字串初始資料時,會在最後自動加上'\0'

4樓:

他是說c型字串後的表示結尾的'\0'

c語言中null是什麼意思

5樓:

在c語言中,

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

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

在不同的系統中,

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

#define null 0

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

6樓:匿名使用者

null 就是一個特殊的指標值, 其實本質是一個巨集#define null (void *)0也就是0值, 強制轉成了指標。

用來表示一個指標非法。 所以在初始化的時候經常用null來初始化。

由於是非法指標, 所以對這個指標取值(*操作)會導致程式崩潰。 必須要先指向一個有效空間才可以。

7樓:匿名使用者

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,而這個地址用於是不能訪問的,所以編譯器提示段錯誤。

8樓:樂跑小子

在標頭檔案 中 定義的一個常量 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,可以(並且只能)通過除錯程式來檢視空指標的值,或者通過程式直接將空指標的值列印出來(如果將一個空指標強制轉換成整型別,那麼=所看到的很可能就是一個非零值)。

9樓:育知同創教育

null,本意是"空的;元素只有零的"意思。計算機中通常表示空值,無結果,或是空集合。

null指標是一個無型別指標,並且值為0。一個指標,擁有2個屬性--地址值和指標型別。兩者的作用是:

1,地址值標識變數的首地址(32位系統下指標的地址值佔4位元組);2,指標型別告訴編譯器,應該怎樣進行接下來的資料訪問(int型陣列和float型陣列是不同的;陣列訪問與結構體訪問也是不同的;等等)。

10樓:66666順心

空的意思,其實不太好說明白!如果分配記憶體分配失敗如:

#include

#include

int main()

如果分配記憶體分配失敗,malloc函式就會返回一個null給p

11樓:陽光沒有眼睛

可以的null別定義為

#define null ((void *)0)

'\0'是字元,ascii是0

12樓:匿名使用者

c語言中null的意思就是空格的意思,用到的很多

13樓:高金山

#define null ((void*)0)

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

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

14樓:匿名使用者

是空指標,指向地址為0的記憶體,在用法上,常用來表示不存在,例:if((fp=fopen("stu","rb"))==null)exit(0);

解析:如果開啟的這個名為stu的檔案不存在,就退出程式;

15樓:匿名使用者

null的定義是:

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

while後面應該填寫

'\0' != *p

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

但是你填

null != *p

或者就是

*p都可以.

16樓:匿名使用者

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

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

17樓:匿名使用者

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

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

c語言程式中的null 和'\0'的區別是什麼?

18樓:召走刀文

null一般表示空指標,也就是這個指標沒有指向任何地址。你也可以簡單的理解為指標變數初始化時賦值

'\0'是字串的結束符。例如字串char *p= "abc";實際上,一共有4個字元,分別是'a' 'b' 'c' '\0',所以當用陣列來儲存這個字串時,就必須至少要有4個元素的陣列。

對於gets函式,當gets函式出現異常時返回null,正常處理是返回字串的指標,這是函式自己定義的。當gets函式異常時,跳出迴圈

library[count].title[0] != '\0'是判斷字串是否是空字串,""就是空字串,但是它裡面是包含一個'\0'字元的。

所以,當不輸入字元(書名)時,跳出迴圈。

請問 c語言中「\0」與null 的區別

19樓:百度使用者

\0是字串後面自動新增的字元,佔一個位置。

而null作為c語言中的保留字,使用來對迴圈等進行判斷的。例如if ***=null

end明白了麼,如果有疑問你可以給我發郵件,[email protected] 我儘量解答。

20樓:超超

對於宣告以後未賦值的數值型別變數則它們的預設值為0

null關鍵字被用來作為variant子型別,它說明變數不包含有效資料。null是將null值顯式地賦值給一變數的結果,也可能是包含null的表示式之間的任何運算的結果謝謝

21樓:百度使用者

\0 \為轉義符,後跟數字為八進位制,\0就是表示數字0null在標頭檔案的定義也是0,沒區別。

它們指的都是ascii字符集中的第一個字元,標誌「空」的一個狀態字。

while(*pf)

while(*pf!=0)

效果也一樣,都是判斷指標為空(假)做為終止迴圈的條件。

指標這種用法一般是在呼叫函式中,會傳遞一個指標,然後返回已指向目標的指標,使用者通過該指標就可以操縱所需功能了。如果調函式失敗,返回的就是空指標。

這可指導使用者,對失敗情況做另外的處理。

22樓:橡皮

一般null實際是 (void *)0,經常用於指標初始化,代表不指向任何有效儲存區。

'\0'是一個字元,代表空的字元,如此而已,呵呵。

補充點,注意區分null和nul

23樓:

\0表示字串的結束符

null表示空常用於資料結構的數....->..=null

c語言中的,c語言中 是什麼意思

c語言中的 是邏輯運算中的非運算。是c語言中的非運算子,在變數前面使用它,會構建非運算表示式,表示式的返回結果是個布林值 也就是隻有true或false 對變數使用時,如果變數不是布林資料型別,將會強制轉化為布林型別再使用,如整形變數123將被轉化為true,整形變數0將被轉化為false。擴充套件...

C語言中NULL有什麼作用?具體用法是什麼

null 其實就是 define null 0 也就是說它就是0 不過是寫 的時候為指標什麼的賦值或判斷指標是否為空時看起來直觀一些 null 屬性指定陣列或指標值是否可以為 null。pre 和 post 特性上允許此屬性,此屬性只能應用於陣列或指標資料型別。必須通過使用下列值之一來設定 null...

c語言中的是什麼作用的啊,C語言中的 是什麼作用的啊

按位異或的意思。就是 不同為1,相同為0 1 1 0 0 1 1 0 0 0 舉個例子 3 5 3 0011 b 5 0101 b 0011 0101 0110 0110的十進位制數是6 所以3 5 6 是按位異或的意思,異或的意思就是相異為真,即0 0 0,1 1 0,1 0 1,0 1 1 比如...