C語言中的chara和inta所佔位元組是一樣嗎

2021-03-03 21:28:37 字數 3374 閱讀 6737

1樓:情殤的

不一樣。char佔一個位元組,那

麼含有6個char的陣列,char a[6] 就佔 1x6 = 6 個位元組。而int則一般佔4個位元組(就假回設佔4個自己),那麼含有答6個int的陣列,int a[6] 就佔 4x6 = 24 個位元組。

2樓:匿名使用者

不一樣啊 前者佔用6位元組 後者佔用24位元組 因為一個字元型 一個整形

c語言中的char a[6]和int a[6]所佔位元組一樣嗎

3樓:匿名使用者

不一樣。

type a[6]佔的空間是

sizeof(type) * 6

所以 char a[6]必然是6位元組。

而int a[6]根據平臺不同,可能是12位元組或者24位元組。

4樓:匿名使用者

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型資料佔的大小了。

5樓:匿名使用者

不一樣哦,一個

baichar佔du1個位元組,一個int佔4個位元組,所zhi以int a[6]是char a[6]的4倍,但dao是指標型別的變數:char *a和int *a佔的字回節是一樣的,都答是機器的定址範圍,32位系統下是4位元組。

6樓:寂寞而莫我知也

肯定bai不一樣的,如何判斷陣列所佔du的zhi

位元組相不相同,先看dao申明的資料型別。char在專32位的cpu是佔屬1個位元組。int是佔4個位元組。

所以char a[6]就是總共佔用了6個位元組。int a[6]佔用了24個位元組

7樓:匿名使用者

當然不一樣,int的寬度是4位元組(32位系統),char的寬度是1位元組

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

8樓:程式猿3號

你這樣寫,

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

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

你必須這麼寫

char[6] = "china"

在記憶體中是這樣儲存的

c h i n a \0

最後一位要儲存\0;

它的字元長度是5,

佔用6個字元。

9樓:葉片舟

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

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

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

10樓:匿名使用者

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

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

11樓:匿名使用者

strlen未知

所佔位元組是5

char c[10]={"china"};到底佔幾個位元組?五個,六個還是十個?

12樓:墨汁諾

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個位元組。

13樓:火虎

字串常量"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'。

14樓:簫聚星月

c[10]佔10個位元組,在

復記憶體中這樣顯示『

制c』,『h』,'i','n','a','\0','\0','\0','\0','\0'。而如果僅僅是「china」的話,因為它是為字串,系統會在字串末尾自動新增1個字串結束標誌「\0」,所以「china」佔6個位元組。

15樓:匿名使用者

字串常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]實際上沒有操作。但是這個和記憶體大小已經沒有關係了。

16樓:匿名使用者

10個,系

bai統會為其分配10個位元組的du大小。至zhi於你用多

dao少是自己的事情。專

一般習慣

屬 char c[10]; memset(c, 0 ,sizeof(c));再賦值。

char c[10] = "china"; sizeof (c) =10; strlen(c)= 5;

17樓:寂寞而莫我知也

10個位元組,沒佔到的補\0

18樓:匿名使用者

sizeof (c)=10;

strlen(c)=5;

佔10個位元組。

19樓:匿名使用者

我還是這麼跟你說吧:

sizeof(a) = 10;

sizeof("china") = 6;

strlen("china") = 5;

C語言中的char a和int a所佔位元組一樣嗎

不一樣。type a 6 佔的空間是 sizeof type 6 所以 char a 6 必然是6位元組。而int a 6 根據平臺不同,可能是12位元組或者24位元組。char a 6 表示一個有6個char型別copy元素組成的陣列,所以佔用記憶體為 6 一個char型別佔的記憶體大小,在一般系...

C語言,char aabc ,c語言中 char a a ,abc 是什麼意思?

等價於char a 4 abc 還有復個自動加上的字元制串結束符。這是陣列初始化自然會分配記憶體,因為在初始化時使用了 引號,所以會自動加上 0。一個char是8個位,也就是一個位元組,所以須要在棧上開闢四個字元的大小空間。有一種情況例外 char const p abc 該 字串被分配到字元常量區...

c語言中有inta012而printfda為什麼輸出

int a 0 表示a是八進位制bai整數,所以du012就是八進位制12 即12q d是十zhi進dao制輸出,回那麼八轉十,12q 1x8 2 10d int a 025 025 q 21 d q表示八答進位制,d表示十進位制 int a 0xx 是表示八進位制,輸入時是顯示十進位制的,012轉...