標(biāo)題: 關(guān)于C語言中的字符串?dāng)?shù)組中的問題 [打印本頁]

作者: 134849694164151    時(shí)間: 2018-5-30 15:26
標(biāo)題: 關(guān)于C語言中的字符串?dāng)?shù)組中的問題
想問問大家就是比如
定義一個(gè)字符串?dāng)?shù)組例如:
char a[]="abcde"
想問問這里 具體有幾個(gè)元素啊?不是應(yīng)該有六個(gè)嗎?還有一個(gè)\0
可是打印的時(shí)候?yàn)槭裁床恍心亍?br /> 打印%d的時(shí)候也并不出現(xiàn)這個(gè)空字符對應(yīng)的ASCII值0


作者: timelessxp    時(shí)間: 2018-5-30 15:41
這樣寫的話是6個(gè)元素,如果你寫char a[5]=“abcde”就是五個(gè)元素,你可以使用sizeof函數(shù)查看這個(gè)數(shù)組大小。
作者: wklhwkl    時(shí)間: 2018-5-30 15:41
        int i;         char a[]="abcde";         for(i=0;i<sizeof(a);i++)                 printf("%d\t",a[i]);
作者: ynit    時(shí)間: 2018-5-30 15:48
就6個(gè)元素啊,\0它所的意義是“字符串結(jié)束符”,因此當(dāng)把一個(gè)字符串存入一個(gè)數(shù)組時(shí),也把結(jié)束符'\0'存入數(shù)組,并以此作為該字符串是否結(jié)束的標(biāo)志。有了'\0'標(biāo)志后,就不必再用字符數(shù)組的長度來判斷字符串的長度了。
作者: ynit    時(shí)間: 2018-5-30 15:49
字符串總是以'\0'作為串的結(jié)束符。因此當(dāng)把一個(gè)字符串存入一個(gè)數(shù)組時(shí),也把結(jié)束符'\0'存入數(shù)組,并以此作為該字符串是否結(jié)束的標(biāo)志。有了'\0'標(biāo)志后,就不必再用字符數(shù)組的長度來判斷字符串的長度了。
作者: wklhwkl    時(shí)間: 2018-5-30 15:49
運(yùn)行下試試吧。
int i;
char a[]="abcde";
for(i=0;i<sizeof(a);i++)
    printf("%d\t",a[i]);
作者: 134849694164151    時(shí)間: 2018-5-30 16:16
timelessxp 發(fā)表于 2018-5-30 15:41
這樣寫的話是6個(gè)元素,如果你寫char a[5]=“abcde”就是五個(gè)元素,你可以使用sizeof函數(shù)查看這個(gè)數(shù)組大小。

試過了,確實(shí)是六個(gè),但是為什么我用printf打印數(shù)組中的字符時(shí),只會出現(xiàn)五個(gè)呀?
作者: 134849694164151    時(shí)間: 2018-5-30 16:17
wklhwkl 發(fā)表于 2018-5-30 15:41
int i;         char a[]="abcde";         for(i=0;i

是六個(gè)元素,但是為什么用printf打印數(shù)組中的元素時(shí)只能打印出來五個(gè)呀?用%d形式打印的,怎么不出現(xiàn)這個(gè)0呢?
作者: 134849694164151    時(shí)間: 2018-5-30 16:17
ynit 發(fā)表于 2018-5-30 15:48
就6個(gè)元素啊,\0它所的意義是“字符串結(jié)束符”,因此當(dāng)把一個(gè)字符串存入一個(gè)數(shù)組時(shí),也把結(jié)束符'\0'存入數(shù) ...

是六個(gè)元素,但是為什么用printf打印數(shù)組中的元素時(shí)只能打印出來五個(gè)呀?用%d形式打印的,怎么不出現(xiàn)這個(gè)0呢?
作者: 134849694164151    時(shí)間: 2018-5-30 16:18
wklhwkl 發(fā)表于 2018-5-30 15:49
運(yùn)行下試試吧。
int i;
char a[]="abcde";

是六個(gè)元素,但是為什么用printf打印數(shù)組中的元素時(shí)只能打印出來五個(gè)呀?用%d形式打印的,怎么不出現(xiàn)這個(gè)0呢?
作者: timelessxp    時(shí)間: 2018-5-30 20:05
\0是說明這個(gè)數(shù)組結(jié)束了,和你打印\r\n一個(gè)道理,就是描述符而已。
作者: wklhwkl    時(shí)間: 2018-5-31 11:52
134849694164151 發(fā)表于 2018-5-30 16:18
是六個(gè)元素,但是為什么用printf打印數(shù)組中的元素時(shí)只能打印出來五個(gè)呀?用%d形式打印的,怎么不出現(xiàn)這個(gè) ...

你是說 printf("%s",a)  這樣輸出嗎? 如果是這樣的話,  %s是以'\0'結(jié)束的。  比如有一個(gè)字符串是 "123\0abcd"  你這樣輸出也是只打印出123。
作者: CoreJustin    時(shí)間: 2018-5-31 14:54
\0是結(jié)束標(biāo)識,在存儲上要占用一個(gè)字節(jié),但是操作的時(shí)候到它就停止了,因此只能看到5個(gè)
作者: hglacy    時(shí)間: 2018-5-31 15:45
\0是結(jié)束標(biāo)識是看不到的。

int i;
char a[]="abcde";
for(i=0;i<sizeof(a);i++)
     printf("%d\t",a[i]);
作者: fffgghhh    時(shí)間: 2018-6-3 16:28
只有一個(gè)元素,\0僅表示一個(gè)字符串結(jié)束的標(biāo)志,是不會打印出來的。
作者: lmvyl    時(shí)間: 2018-6-4 16:33
應(yīng)該是有6個(gè)
作者: skye121    時(shí)間: 2018-6-4 22:53
\0打印顯示不出來,但是占1個(gè)字節(jié)內(nèi)存
作者: 格桑    時(shí)間: 2018-6-6 11:11
\0是字符串結(jié)束符,你用sizeof函數(shù)時(shí)可看出占用一個(gè)字節(jié),但在系統(tǒng)終端默認(rèn)打印時(shí)不予顯示。也可以用strlen函數(shù)檢驗(yàn)
作者: xindejuexing    時(shí)間: 2018-6-6 13:46
占用6個(gè)內(nèi)存空間,應(yīng)該是5個(gè)元素的,\0是字符串結(jié)束符
作者: AZ_2018    時(shí)間: 2018-6-6 16:55
結(jié)束標(biāo)識如果能看到那所有打印內(nèi)容都會有\(zhòng)0了,很不方便
作者: dai123789    時(shí)間: 2018-6-6 18:29
\0是標(biāo)識符,遇到它就結(jié)束了所以不打印了,我是這么理解的
作者: wghh    時(shí)間: 2018-6-6 20:20
\0就是不會在printf出現(xiàn)啊,它只是一個(gè)結(jié)束符
作者: qyh123    時(shí)間: 2018-6-6 22:44
第六個(gè)不顯示只是標(biāo)志著結(jié)束
作者: geforis    時(shí)間: 2018-6-7 10:53
printf打印數(shù)組中的字符時(shí),只會出現(xiàn)五個(gè),第6個(gè)是\0,顯示不出來什么
作者: huazilalala    時(shí)間: 2018-6-9 22:02
字符串?dāng)?shù)組后面沒有\(zhòng)0,string后面有\(zhòng)0
作者: zczczczc234    時(shí)間: 2018-6-9 23:51
6個(gè)。。。。。。。。。。。。
作者: xhh1123    時(shí)間: 2018-6-10 02:10
\0是結(jié)束符吧
作者: xiao布布    時(shí)間: 2018-6-10 11:35
5個(gè),\0只是一個(gè)表示符,只要你錄入字符串他會自動(dòng)給你加上\0,他占用空間,但是不算在元素中
作者: zhaoyinlo    時(shí)間: 2018-9-4 17:15
應(yīng)該是  6個(gè) 你可以用 sizeof看下 它占用了多少個(gè)字節(jié)  如果是用printf(“%d\n”,a);打印的是數(shù)組 首元素地址 不會打印 數(shù)組元素。看我寫的代碼,和運(yùn)算結(jié)果。






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1