c語言中字元和字元和null是等價的麼

2021-03-04 00:15:27 字數 5388 閱讀 2408

1樓:匿名使用者

單引號裡兩個裡面空的,在c語言中不是合法表示,要表示空字元就是用'\0'。

兩個雙引號中才可以是空的,表示空字串。

null如果表示字元時,就是上面的空字元,也就是對應ascii碼0。

null還可以表示空指標,也就是沒有進行位址初始化的指標。但實際在計算機表示中指向位址0的指標就表示沒有初始化,所以null也是指向位址0的指標。

2樓:匿名使用者

char c[1];

c[0] = '\0';與 char d[1] = "";應該是乙個意思

但是跟null是倆概念,null等於是沒有指向記憶體的指標

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

3樓:召走刀文

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

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

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

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

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

c語言中\0空字元(null)000是不是就代表空格?

4樓:奈文玉百珍

。。抄。

'\0'的意思是ascii為0的字

襲符bai。

它所的意義是「字串

du結zhi束符」。

比如,dao乙個字串"hello",它是由字元'h','e','l','l','o','\0'6個字元在記憶體中連續存放的。程式在見到第乙個'\0'時就會認為該字串結束了。

樓上的樓上所說的「null」只是乙個用來表示空指標的巨集定義,跟這個沒有太大關係。雖然(null=='\0')這個表示式返回的是「真」,但這兩個東西完全不是乙個意義。

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

5樓:匿名使用者

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

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

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

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

6樓:百度使用者

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

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

end明白了麼,如果有疑問你可以給我發郵件,kostevych@yahoo.***.** 我盡量解答。

7樓:超超

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

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

8樓:百度使用者

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

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

while(*pf)

while(*pf!=0)

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

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

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

9樓:橡皮

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

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

補充點,注意區分null和nul

10樓:

\0表示字串的結束符

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

c語言 空字元 null 和字元 '0' 的區別

11樓:匿名使用者

ascii碼聽過吧,字bai符和字串的數字就du是ascii,它們和我們的zhi十dao進製數是有區別的如專:字元'0', '1', '2'……換屬

成十進位製數是48, 49, 50,這就是' ' 表示的字元和沒有的區別哦而字串就是由字元組成,但有乙個區別:字串「0123」,它可分割為'0' '1' '2' '3' '\0' <-----多了乙個尾巴'\0'------對應的十進位制值0(和'0'要區別開而null的值就是'\0',即十進位制的0,而字元'0'的十進位制值是48(要分別開來哦) --更深一層的就是null和'\0'(即0)只是值相同,意義上是不同的哦(這不懂也沒事,有彙編知識可看下)c在編譯的時候,資料段和堆疊段會被生成乙個dgroup的段組(即在記憶體中是相連的,並且是共用同乙個段位址),而這dgroup中有一段就是null(0,表示是dgroup的開始那一小段,後面才是資料段這些)段了,它由編譯器生成的,記錄了編譯器的相息。所以有相關的保護,不允許對它的內容修改<----這就是為何null值的指標是安全的,對null值的指標賦值會報錯

12樓:匿名使用者

null是一來個巨集。

#ifndef null

#ifdef __cplusplus//這個自是指示是用baic++來編譯程式du

#define null 0 //用null這個字元代表zhi0

#else

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

#endif

一般null==0

null!dao=『0』

當然'0'==48

13樓:匿名使用者

null與0的區別:抄

還是讓我們看一下windef.h中null的定義:

#ifndef null

#ifdef __cplusplus//這個是指示是用c++來編譯程式

#define null 0 //用null這個字元代表0

#else

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

#endif

所以說:它們沒有區別,只不過在c裡面會做乙個強制型別轉換。

14樓:匿名使用者

null的ascii碼值是0'0'的ascii碼值是48(也許沒能理解樓主的意思)

15樓:匿名使用者

null的內碼是0'0'的內碼是48

下面這段c語言程式中,null 和'\0'的區別是什麼?

16樓:召走刀文

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

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

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

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

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

17樓:

c中沒有對null預定義,所以null和'\0'區別就大了:null只是個合法的使用者識別符號,而'\0'是預定義為0的字元常量。

如果是null和'\0',那它們沒有區別,都被預定義為值為0的常量,所以混用它們不會產生任何問題,甚至把用它們的地方都改成0也無妨。一般情況下,null用於使指標無效或判斷指標是否無效,'\0'則用於字串結束或判斷字串是否結束。這樣規範書寫,**的可讀性就大為提高,沒有發現有什麼別的意義。

18樓:匿名使用者

gets(library[count].title) != null這裡是用來判斷指標是否為空

library[count].title[0] != '\0'這裡判斷裡面的資料是否為字串結束標記

c語言中 \0 空字元(null) 000 是不是就代表空格?

19樓:匿名使用者

絕對不是bai.

這些東西你要搞的du非常清楚才行

zhi.

否則絕對學不好

daoc語言的.

'\0'表示字元

串結尾版,是乙個轉移字元,實際上他的權數值是0,所以在出現'\0'的地方你都可以用0代替.

空格的ascii是0x20. 這點你不用懷疑,我做了5年的c了.

20樓:匿名使用者

不是!\0是字串結束符

null是乙個0或者 -1因系統而已

000就是乙個整形

21樓:

當然不是啦!

\0是字串結束標誌

是檢驗乙個字串是否結束

空格好像用ascii碼\0x20代表~

c語言中怎樣給整型和字元型賦空值(null)

22樓:匿名使用者

空值這個概念實際上只是針對指標而言的。整型資料和字元的空值實際上就是乙個預設值。整型資料的預設值是0,字元型資料的預設值是『\0』

23樓:匿名使用者

null在32位操抄作系統的記憶體中的襲表現就是0x0000 0000 0000 0000 0000 0000 0000 0000,即32位都為0,其值其實為0

所以,有

int i = 0; //讓i為null

char c = '\0'; //'\0'在記憶體中的表現也為一串0,等價與0和null

24樓:享耳三告

int a=null

char a='null'

,阿克斯碼 上null就代表空值

25樓:匿名使用者

null的值為0

int a=0;

char s=;

C語言空字元NULL和字元0的區別

ascii碼聽過吧,字bai符和字串的數字就du是ascii,它們和我們的zhi十dao進製數是有區別的如專 字元 0 1 2 換屬 成十進位製數是48,49,50,這就是 表示的字元和沒有的區別哦而字串就是由字元組成,但有乙個區別 字串 0123 它可分割為 0 1 2 3 0 多了乙個尾巴 0 ...

在c語言中非法的字元常量是,在c語言中,非法的字元常量是A。tB17CnDxaa

你這個是 抄選擇題?那就選d吧,其 襲它的都是小於128的字元,可bai以顯示,d表示du的內容大於zhi等於128,不能顯示,你可以 與ascii表對應,每乙個字元常量有他相應的碼值。以下選項不合法的字元常量是 a 018 b c d xcc 每個字元常量都對應乙個整數編碼,所以表示乙個字元有兩種...

c語言中十六進位制字元陣列轉化為字串

如下 void bytetohexstr const unsigned char source,char dest,int sourcelen return 擴充套件資料 字串是一種非常重要的資料型別,但是c語言不存在顯式的字串型別,c語言中的字串都以字串常量的形式出現或儲存在字元陣列中。同時,c ...