C語言符號0符0數字0以及串結束標誌空值五者的區別回答好了至少加50分

時間 2022-06-24 11:15:02

1樓:巨之說

問題1:

while (*t!=0) 等價於while (*t!='\0')

因為'\0'的ascii碼是整數0,所以'\0'寫成整數形式時,就是整數的0。

問題2:

字元的0表示為'0',整數的0表示為0。

'\0'的ascii碼是0,所以'\0'與整數0有時候等價。正如'a'當做整數用時,就是65一樣。

'0'的ascii碼是49,所以'0'當作整數用時,等價於整數49。

字串結束標記就是'\0'。

null代表空指標,是一個符號常量。有的書上,用'\0'代表空指標,實際上不規範。

有問題,再追問。

追加回答:

邏輯的0就是「假」,因為c語言無專門邏輯型資料,故用整數的0來代表。

'/0'是錯誤的寫法,'\0'才是正確的。

2樓:不啷個行些

以上這個程式,ss,aa表示的是兩個陣列,*t 和*s 分別是指向這兩個陣列的指標。

樓主記住,在陣列裡面 \0表示結束,只要這個指標指向了它,指標就跳出了,就不再指向這個陣列了。 ,\0後的字元也就不再輸出了。你說的串結束標誌也就是 \0

在你這個while迴圈中,whlie(*t!=0)並不會永久迴圈,因為這是在邏輯中,0表示假,當while中判斷出是假,那就會跳出迴圈,繼續執行下面的語句。

你們老師說的字元0 它是一個字元,在c語言中用char定義,ascii中它的值是48,就跟a的值是97一個道理;但數字0它是一個數字,用int定義的。只有用char定義的字元才有ascii碼值。

3樓:手機使用者

我才5年級 ok?

在c語言中字元與數字的有關問題:0與『0』的區別

4樓:匿名使用者

一、資料型別不同

1、0:代表數字0。

2、『0』:代表字元0。

二、計算能力不同

1、0:具有計算能力。

2、『0』:是不具計算能力的文字資料型別。

三、記憶體儲存不同

1、0:由數字、小數點、正負號和字母e組成,用字母n表示。數值型資料的取值範圍是:

-0.9999999999e+19+到0.9999999999e+20,包括正負號、小數點和字母e在內,其長度最大20位。

2、『0』:包括中文字元、英文字元、數字字元和其他ascⅱ字元,其長度(即字元個數)範圍是0-255個字元,即0x00至0xff。

5樓:

請注意 ascii的編碼

字元 對應的ascii碼(10進位制)

'0' 48

'1' 49

'2' 50

'3' 51

......

'8' 56

'9' 57

輸入是字串"32486",

要把這個字串裝換為數字

3*10000 + 2*1000 + 4*100+8*10+6個十百千萬 位上的 數字 怎麼來?

例如 萬位 的3

要把字元'3' 轉為 數字 3

ascii表裡 '0' 到 '9'是相鄰、連著的'1' 比 '0' 大 1

'2' 比 '1' 大 1 '2' 比 '0' 大 2所以 '3' - '0' 就得到'3'對應的數字3,再來看'3' - 0是多少 ,'3' 的ascii碼是 51 ,51 - 0 等於 51顯然 不對

注意 字元 在記憶體中是數字 字元型是 特殊的整形

6樓:

肯定不同呀,0的值還是0 而'0'的值是按它的ascii碼值來算的,注意ascii表示的都是字元

7樓:

0是數值型,而『0』是字元型,兩者在資料型別上不同

如果都用十六進位制表示,數值0表示為0x00,字元'0'表示0x30(可以查ascii碼)

在c語言中,會檢查資料的型別並有專門的關鍵字,數值型的如int、long,浮點型的如float、double,字元型的如char,區分這些型別是瞭解c的第一步。

8樓:匿名使用者

**貼多一點吧。你的意思倒是明白了。

9樓:匿名使用者

一個是數字0,一個字元0。

10樓:小八

'0'表示字元0

0表示整數0

他們的ascll碼不同

11樓:虎光牆

0就是數字,'0'是字元

c語言中字串中,0和\0什麼區別

12樓:印信詹胭

0和'\0'

的字面值都為整數0;

可以用來表示字串結束標誌,注意和'0'的區別

13樓:充連枝饒亥

因為c語言中沒有字串這種資料型別,只有char字元型別,在c語言中所謂的字串其實是char陣列,陣列最後一個元素加上「\0",表示字串結束,這是一種字串的表達方式。

14樓:太叔秀雲邵鶯

c語言中

『0』和

'\0'沒有關係

1,字串『0』代表字元的0

2,'\0'代表數陣列或者

字串的結束字元

15樓:沙寄竹荀茶

0是數值型,而『0』是字元型,兩者在資料型別上不同

如果都用十六進位制表示,數值0表示為0x00,字元'0'表示0x30(可以查ascii碼)

在c語言中,會檢查資料的型別並有專門的關鍵字,數值型的如int、long,浮點型的如float、double,字元型的如char,區分這些型別是瞭解c的第一步。

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

16樓:百度使用者

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

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

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

17樓:超超

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

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

18樓:百度使用者

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

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

while(*pf)

while(*pf!=0)

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

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

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

19樓:橡皮

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

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

補充點,注意區分null和nul

20樓:

\0表示字串的結束符

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

c語言中字串結束符'\0'就是0. 這句話有什麼依據嗎

21樓:

'\0'就是8位的00000000,因為字元型別中並沒有對應的這個字元,所以這麼寫。在數值型別裡就代表數字0。

補充:這個你要去學下基礎的,數值型別儲存時,最高位決定正負號,其他位都為0可不就是0了麼?

'\0'是轉譯字元,意思是告訴程式,這不是字元0,我要的是數字0的2進位制直接放進來,因為acsii碼的0可不是00000000

22樓:傲世修羅王

當然有依據,這是c語言設計者規定的。已成事實,沒什麼好爭辨的,就像飛機要在天上飛一樣。

23樓:匿名使用者

當然有,這是ascii值為0的特殊字元,別跟null混了就行 0.0

24樓:長巷煙雨

\0』的ascii碼值為0.

c語言裡這個空格鍵跟'\0'到底啥區別啊?

25樓:自我程式設計

空格是空格,結束符0是結束符0,兩者不對等。

你貼的那個圖是不是講的scanf輸入,scanf這個函式預設是將空格作為分割符號,所以你輸入

「how are you」它是當做三個字串來識別的分別以空格來分割。

至於你說的二維字元陣列初值,用大括號巢狀每一行套一個括號,和只用一個大括號,都是一樣的。只不過用大括號把每行分開,可以單獨對某一行區域性賦值。

實際上二維陣列是給你看的,在計算機眼裡都是一維陣列。a[5][5]在記憶體中其實就是連續的25個地址(從地址分佈上來說和a[25]沒區別)。你可以試試取首地址&a[0][0],然後依次++,可以一直取到最後一位。

所以直接用一個大括號,就是按照連續地址賦值。

你可以試試下面**,列印就是一樣。(重點是printf語句輸出字串是找到第一個結束符號0為終止,沒有0就會一直往後面輸出直到越界)。

char a[2][5]=;

char b[2][5]=,};

printf("%s\n",a[0]);

printf("%s\n",b[0]);

26樓:半田明月

'\0'的ascii碼值是0,不顯示任何東西。

空格' '的ascii碼值是32,顯示一個空。

scanf讀取字串會考慮空格,但是gets不會。

27樓:

「這兩個陣列輸出是一樣的」?

不知道你是怎麼輸出的。

作為字串時它們是不一樣的,一個是結尾標誌,一個就是空格符號。

作為字元顯示時它們都是看不見的圖形,比如printf("%c",' ');和printf("%c",'\0');它們顯示在螢幕上是看不見的,所以你就認為它們一樣。

它們是不一樣的,是不可以替換的。

字元0和整數0有區別麼???求高手 求詳解

28樓:八哥說科技

1、型別符號不同:

字元『0』用字元變數儲存,需要使用型別符號 char 來表示,而整數0用整型變數來儲存時,使用 int 型別符號來申明。

2、儲存單元不同:

字元「0」在記憶體單元中佔用 1 個位元組即8位來表示,而整型變數儲存 0 在16位字長的機器上,基本整型的長度也為16位,即用 2 個位元組**儲存。

3、內部儲存數值不同:

char用於c或c++中定義字元型變數,只佔一個位元組,取值範圍為 -128 ~ +127(-2^7~2^7-1),字元「0」對應的ascii 碼為 0011 0000即 48。而,整型 0 的內部儲存的值為 0x0000。

c語言中在字串的結尾加0還是'\0'?有區別嗎?

29樓:匿名使用者

有區別,在c中'\0'為轉義字元,為字串結束標誌。在我們輸入字串時,其實當輸入結束時,編譯器會自動加上'\0'。

30樓:匿名使用者

加'\0',是有區別,其中的'\0'為轉義字元,其ascii值為0,

而數字 0(字元型) 的ascii值為0+48=48 ,可以用printf("%d %d %d",'\0','0',0);

語句來檢視

31樓:匿名使用者

兩者bai是相同du的。

例:zhichar *str="abcd";

memset(str+3, 0, 1) ==> str="abc"

memset(str+3,'\0',1) ==> str="abc" 此二

者等價dao

但memset(str+3,'0',1) ==> str="abc0"

從另一專

個角度屬

(int)(0) = 0

(int)('\0') = 0

(int)('0') = 48

C語言0X0X0X0X0X0X怎麼運算可以變成0X0X0X0X0X0X

16進位制轉換為十進位制數字,然後 16n n 3位上的數 2,這樣就能做到 無畏無知者 不明白你要什麼,什麼3位 2位的 按 0x31 0x32 0x33 0x41 0x42 0x43,變成0x21 0x22 0x23 0x21 0x22 0x23 0x31 and 0x0f 0x20 請問c語言...

C或C 語言結束時會有“return 0”這個結尾,為什麼一定要return0呢?return1或2不行嗎

如果是程式的返回值,沒有renturn 0 語句也不會提示編譯錯誤,不過按規範還是加上好。但如果是編寫函式的話,要求有返回值則要加上return 變數名 這是main 函式執行完時告知系統是否執行成功。一般用return 0表示 執行成功。 可以的,因為主函式main也是一個函式。若main定義為i...

在C語言中,a為0時,表示式a 0和a 0的值為 真 嗎為什麼

a 0 是一個賦值語句 a 0是一個邏輯表示式,a為0時,說明的是後者。 一個等號和兩個等號意義不一樣的,第一個 是賦值,a的值會變,第二個 是判斷,他是邏輯運算子,意思是 如果a等於0是真的話,一般會在if等帶選擇性的語句 現。 不太明白你的問題。a 0是賦值操作 a 0是判斷 a是否等於0 的表...