charachina長度是幾,C語言問題char5china它的字元長度是5還是6所佔位元組是5還是

2021-03-03 21:28:35 字數 1541 閱讀 5310

1樓:匿名使用者

a[5]是表示'\0',但是'\0'對應bai的ascll碼是0,在ascll碼錶中du前32號(0~31)zhiascll碼代表的字dao符是控制字元(如換回行符就在這範

答圍內),不屬於可列印字元,因此即使a[5]列印出來是看不到的

另外 sizeof的值是6,strlen的值是5 也就在測算長度時候sizeof符號把'\0'算在內,而函式strlen()不把'\0算在內,這也是為了需要,因為大部分測算字元我們都不需要把後面的'\0'算上!'

2樓:匿名使用者

長度是6,char a[6] = ; a[5] = '\0',空字元,表示結束,系統自動加的。

3樓:匿名使用者

a[5]可以列印的

sizeof的值是6,

strlen的值是5

4樓:逸雲凡忌

strlen 得5

算上結束符'\0' 6

c語言問題 char[5]=「china」 它的字元長度是5還是6?所佔位元組是5還是6?

5樓:程式猿3號

你這樣寫,

在vc6中可能沒有錯,但是,vc6是很不標準的。。。

在vs2010中是肯定不能這麼寫的,因為越界了。

你必須這麼寫

char[6] = "china"

在記憶體中是這樣儲存的

c h i n a \0

最後一位要儲存\0;

它的字元長度是5,

佔用6個字元。

6樓:葉片舟

字元長度是5,不包括'\0',空字元

位元組大小就是陣列定義的大小

在你這個陣列中,所佔位元組也是5,因為,你陣列定義的就是這麼大,沒給空字元留空間

7樓:匿名使用者

char s[5],系統僅分配5個字元空間,用"china"來初始化這個字元陣列是有風險的,c語言規定,預留的空間必須考慮串結束符'\0',在vc++ 6.0環境下,編譯錯誤資訊是,error c2117: 'china' :

array bounds overflow,直譯是陣列邊界溢位,也就是說,初始化串太長,超出預留空間了。

8樓:匿名使用者

strlen未知

所佔位元組是5

char c[10]={"china"};佔幾個位元組?

9樓:匿名使用者

字串常量"china「佔六個位元組,分別是字元'c', 'h', 'i', 'n' 'a'5個字元和結束符'\0'.共六個。

字元陣列c的大小

只和c[10]中的10有關內,定容義了大小為10個char,char大小為一個位元組,所以c的大小是10個位元組。

這個式子進行了初始化賦值。c[0] = 'c', c[1] = 'h',直到c[5] = '\0';

c[6] - c[9]實際上沒有操作。但是這個和記憶體大小已經沒有關係了。

c語言陣列長度的問題,C語言陣列長度的問題

strlen函式並非用來求陣列長度,而是求字串中有效字元長度。您的定義 a 3 看上去是一個char型別陣列,但同時a也可以是一個字串,內容為 abc.之所以後面省略,是因為您的字串沒有結尾符 0 即這個字串在定義時未封閉。這導致 c 後面的內容被strlen函式計入字串長度。所以它在您的某一次執行...

(c語言)如果已知英制長度的英尺foot和英寸inch的值

include intmain inta intfoot,inch scanf d a foot int 0.01 a 0.3048 inch int 12 0.01 a 0.3048 double foot printf d d foot,inch return0 擴充套件資料c資料型別長度操作 ...

上海地鐵9號線地上站有幾公里長度

上海軌道交通9號線 shanghai metro line 9 也稱作申鬆線,以天藍色為標誌色,列車編組採用6節編組方式。該線由上海港鐵建設 負責建設,由上海地鐵第一運營 負責運營。該線於2007年12月29日一期通車。此後,先後開通一期遺留段 二期 二期遺留段 南延伸段。該線是一條東西走向為主的線...