欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于C語言中的字符串數組中的問題 [打印本頁]

作者: 134849694164151    時間: 2018-5-30 15:26
標題: 關于C語言中的字符串數組中的問題
想問問大家就是比如
定義一個字符串數組例如:
char a[]="abcde"
想問問這里 具體有幾個元素?不是應該有六個嗎?還有一個\0
可是打印的時候為什么不行呢。
打印%d的時候也并不出現這個空字符對應的ASCII值0


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

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

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

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

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

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

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






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