1樓:程式猿3號
你這樣寫,
在vc6中可能沒有錯,但是,vc6是很不標準的。。。
在vs2010中是肯定不能這麼寫的,因為越界了。
你必須這麼寫
char[6] = "china"
在記憶體中是這樣儲存的
c h i n a \0
最後一位要儲存\0;
它的字元長度是5,
佔用6個字元。
2樓:葉片舟
字元長度是5,不包括'\0',空字元
位元組大小就是陣列定義的大小
在你這個陣列中,所佔位元組也是5,因為,你陣列定義的就是這麼大,沒給空字元留空間
3樓:匿名使用者
char s[5],系統僅分配5個字元空間,用"china"來初始化這個字元陣列是有風險的,c語言規定,預留的空間必須考慮串結束符'\0',在vc++ 6.0環境下,編譯錯誤資訊是,error c2117: 'china' :
array bounds overflow,直譯是陣列邊界溢位,也就是說,初始化串太長,超出預留空間了。
4樓:匿名使用者
strlen未知
所佔位元組是5
char c[10]={"china"};到底佔幾個位元組?五個,六個還是十個?
5樓:墨汁諾
c[10]佔bai10個位元組,在記憶體中這樣du顯示『c』,『h』,'i','n','a','\0','\0','\0','\0','\0'。而如果zhi僅僅是「china」的話,dao
因為它是為字串,系統專會在字串末
屬尾自動新增1個字串結束標誌「\0」,所以「china」佔6個位元組。
字元陣列c的大小隻和c[10]中的10有關,定義了大小為10個char,char大小為一個位元組,所以c的大小是10個位元組。
6樓:火虎
字串常量"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'。
7樓:簫聚星月
c[10]佔10個位元組,在
復記憶體中這樣顯示『
制c』,『h』,'i','n','a','\0','\0','\0','\0','\0'。而如果僅僅是「china」的話,因為它是為字串,系統會在字串末尾自動新增1個字串結束標誌「\0」,所以「china」佔6個位元組。
8樓:匿名使用者
字串常bai
量"china「佔六個位元組du
,分別是字元zhi'c', 'h', 'i', 'n' 'a'5個字元和結束符'\0'.共六個。
dao字元陣列c的大小
只和內c[10]中的10有關,定容義了大小為10個char,char大小為一個位元組,所以c的大小是10個位元組。
這個式子進行了初始化賦值。c[0] = 'c', c[1] = 'h',直到c[5] = '\0';
c[6] - c[9]實際上沒有操作。但是這個和記憶體大小已經沒有關係了。
9樓:匿名使用者
10個,系
bai統會為其分配10個位元組的du大小。至zhi於你用多
dao少是自己的事情。專
一般習慣
屬 char c[10]; memset(c, 0 ,sizeof(c));再賦值。
char c[10] = "china"; sizeof (c) =10; strlen(c)= 5;
10樓:寂寞而莫我知也
10個位元組,沒佔到的補\0
11樓:匿名使用者
sizeof (c)=10;
strlen(c)=5;
佔10個位元組。
12樓:匿名使用者
我還是這麼跟你說吧:
sizeof(a) = 10;
sizeof("china") = 6;
strlen("china") = 5;
char a[]={"china"}; 長度是幾
13樓:匿名使用者
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'算上!'
14樓:匿名使用者
長度是6,char a[6] = ; a[5] = '\0',空字元,表示結束,系統自動加的。
15樓:匿名使用者
a[5]可以列印的
sizeof的值是6,
strlen的值是5
16樓:逸雲凡忌
strlen 得5
算上結束符'\0' 6
那char *s="\ta\017bc"中s所指向的字串是5個還是6個啊?
17樓:心情都隨你轉彎
\017不是八進位制轉義字元,八進位制轉義字元不能以0開頭,這麼基礎的都錯了 為什麼還有這麼多贊
18樓:匿名使用者
\t,相當於按了一下tab鍵
a,字母a
\017,表示8進位制的ascii碼對應的字元b,字母b
c,字母c
最後還專有一個\0,不過
屬字串長度應該不算在內。
可以用strlen測試一下是5
所佔位元組數應該是6
可以這樣測試
char s[5] = "\ta\017bc";
用vc編譯會報錯「array bounds overflow」
有陣列定義:char array[]="china";則陣列array所佔的空間為多少位元組 為什麼(儘量詳細)
19樓:peking在路上
在定copy義字元陣列用字串常量進行初始化時,系統會自動在結尾加'\0'做結束標誌,所以陣列array所佔的空間為6個位元組。
所謂陣列,是有序的元素序列。[若將有限個型別相同的變數的集合命名,那麼這個名稱為陣列名。組成陣列的各個變數稱為陣列的分量,也稱為陣列的元素,有時也稱為下標變數。
用於區分陣列的各個元素的數字編號稱為下標。陣列是在程式設計中,為了處理方便, 把具有相同型別的若干元素按無序的形式組織起來的一種形式。 這些無序排列的同類資料元素的集合稱為陣列。
陣列是用於儲存多個相同型別資料的集合。
20樓:情感分析
有陣列定義所佔空間為多少位元組?多少位元組?當你輸入的時候左下角會顯示出有多少位元組?
21樓:匿名使用者
空間為6。
分析過程:
"china"是個字串常量
字串是以\0為結束符的字元陣列,\0是個不可視字元,故"china"所佔的空間為:5+1=6。
char array="china"; 這裡定義陣列array,並用"china"進行初始化。定義陣列時,沒有指定陣列元素個數,則,陣列array所佔空間由初始化資料所確定。
因此,array所佔空間就是"china"所佔空間的大小。
22樓:
6個位元組 。。
"china" 5個char型,5個位元組,不過char 字串預設會新增'\0'作為結束符。所以再加一個'\0'為6個位元組。
23樓:泡泡第一名
在c語言中,復
字串是被作製為字元陣列來處理的。一般bai一個陣列du元素儲存一個字元,zhi
並且規定了在串末以字
dao符『\0』作為「字串結束標誌」,即:
「china」後自動加了『\0』,變為「china\0」,所以加起來一共有 6 個位元組。
邊外話:c語言中之所以這樣規定,主要是因為人們在使用陣列時,往往不能對已定義的陣列長度(所佔的記憶體空間)進行充分利用,多了結束標誌,可以有效地節省其多餘的記憶體空間。
char c[10]={"china"};佔幾個位元組?
24樓:匿名使用者
字串常量"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語言中的char a[6]和int a[6]所佔位元組一樣嗎
25樓:匿名使用者
不一樣。
type a[6]佔的空間是
sizeof(type) * 6
所以 char a[6]必然是6位元組。
而int a[6]根據平臺不同,可能是12位元組或者24位元組。
26樓:匿名使用者
char a[6]表示一個有6個char型別copy元素組成的陣列,所以佔用記憶體為 6* 一個char型別佔的記憶體大小,在一般系統中char都是1個位元組的,所以共佔6個位元組。
int a[6]表示一個有6個int型別元素組成的陣列,所以佔用記憶體為 6* 一個int型別佔的記憶體大小,但int型資料佔的記憶體大小是不確定的,跟編譯器和作業系統都有關係。一般的32位系統是4位元組,不過最好自己親自測試,可以用語句 printf("%d",seizof(int));就可以列印出一個int型資料佔的大小了。
27樓:匿名使用者
不一樣哦,一個
baichar佔du1個位元組,一個int佔4個位元組,所zhi以int a[6]是char a[6]的4倍,但dao是指標型別的變數:char *a和int *a佔的字回節是一樣的,都答是機器的定址範圍,32位系統下是4位元組。
28樓:寂寞而莫我知也
肯定bai不一樣的,如何判斷陣列所佔du的zhi
位元組相不相同,先看dao申明的資料型別。char在專32位的cpu是佔屬1個位元組。int是佔4個位元組。
所以char a[6]就是總共佔用了6個位元組。int a[6]佔用了24個位元組
29樓:匿名使用者
當然不一樣,int的寬度是4位元組(32位系統),char的寬度是1位元組
c語言中的char a[6]和int a[6]所佔位元組是一樣嗎
30樓:情殤的
不一樣。char佔一個位元組,那
麼含有6個char的陣列,char a[6] 就佔 1x6 = 6 個位元組。而int則一般佔4個位元組(就假回設佔4個自己),那麼含有答6個int的陣列,int a[6] 就佔 4x6 = 24 個位元組。
31樓:匿名使用者
不一樣啊 前者佔用6位元組 後者佔用24位元組 因為一個字元型 一個整形
c語言char相關問題,c語言中char 是什麼意思
s輸出bai時需要是指標du 或陣列名,zhi比如說 include int main 而你上面daochar a a program 這種賦內值本身是非法的。容 c語言中char 是什麼意思?char 是宣告一 個字元型別的指標。比如 chat y 就是宣告一個指標y,這個指標指向的地址上只能存放...
c語言char問題
暈了,原來字串中有不確定空格啊,那我原來想的方法就不行了。sscanf也不能用了。sscanf我沒用過,可能確實如zamanewby所說吧。隨便寫了個,樓主先試試。include stdio.h char p int getint if p 0 return 1 int s 0 while p 0 ...
c語言中char是什麼意思,C語言中char 是什麼意思? 和char 有什麼區別呀
char是容納單字元 的一種基本資料型別,不能儲存漢字,一個漢字佔2位元組 儲存字元回串用string,其實string就是一個答char的陣列,不過它當中的元素多一個 0 在陣列的最後,表示結束 例如字串abcd char a 是等價的。而且一個變數只能存一個字元 如果要存多個則用string 字...