⑴ c語言中abc\0defgh佔多少位元組
字元串abc\0defgh,一共佔10個位元組。
首先,C語言中每一個字元佔1個位元組。
其次,\0是轉義字元,它佔一個位元組,而不是\和0分別佔一個位元組。
再次,C風格的字元串,為了方便操作,默認結尾增加一個\0,以表示字元串結束,這也算一個。
最後,能看到a、b、c、\0、d、e、f、g、h一共9個位元組,加上看不到編譯器添加的末尾的\0字元,共10個位元組。
⑵ c語言中如q[]="abc",請問數組中有幾個位元組
4個,最後一個是'\0'
⑶ C語言結構體所佔用的位元組數如何計算
結構體的數據類型的有點多我們就不啰嗦了,直接來看相同數據結構體的幾種書寫的格式吧。
格式一:
01.structtagPhone
02.{
03.charA;
04.intB;
05.shortC;
06.}Phone;
格式二:
01.structtagPhone
02.{
03.charA;
04.shortC;
05.intB;
06.}Phone2;
格式三:
01.structtagPhone3
02.{
03.charA;
04.charB[2];
05.charC[4];
06.}Phone3;
我們都知道,char類型佔用1個位元組,int型佔用4個位元組,short類型佔用2個位元組,long佔用8個,double佔用16個;
那麼我們可能會犯一個錯誤就是直接1+4+2=7,該結構體佔用7個位元組。這是錯的。
以下我們簡單分析下:
計算結構體大小時需要考慮其內存布局,結構體在內存中存放是按單元存放的,每個單元多大取決於結構體中最大基本類型的大小。
對格式一:
上面結構計算大小,sizeof(Phone3) = 1 + 2 + 4 = 7, 其大小為結構體中個欄位大小之和,這也是最節省空間的一種寫法。
總結:
第一種寫法,空間浪費嚴重,sizeof 計算大小與預期不一致,但是保持了每個欄位的數據類型。這也是最常見的漫不經心的寫法,一般人很容易這樣寫;
第三種寫法,最節省空間的寫法,也是使用 sizeof 求大小與預期一樣的寫法,但是全部使用位元組類型,丟失了欄位本生的數據類型,不方便使用;
第二種寫法,介於第一種和第三種寫法之間,其空間上比較緊湊,同時又保持了結構體中欄位的數據類型。
只要了解是這些寫法的差異性,可以視情況選用。
⑷ 在c語言中存儲「abc」要佔用________個位元組
\\是一個位元組——代表字元\的ascii碼。
\'是一個位元組——代表字元'的ascii碼。
abc是三個位元組——代表字元a、字元b、字元c的ascii碼。
\376是一個位元組——代表ascii碼為8進制376的一個字元。
以上有6個位元組。
不過c語言在保存如此形式的字元串時,最後還要添加一個位元組0(相當於字元'\0')作為字元串的結尾標志。
連同此結尾標志,總共要佔存儲空間7個位元組。
⑸ c語言中「ABC\n」佔多少位元組為什麼
\ \ 1 2 3 4 \ \ \n \0
10, 最後一個結束符佔用1個位元組, \\ 指的是 \, \n是回車鍵
⑹ 字元串"ABC"在內存佔用的位元組數是
ASCII碼是4位元組,後面有個停止位'\0';
UNICODE編碼是4*2=8個位元組,回答完畢。
⑺ c語言試題。字元串"ABC"在內存中佔用的位元組數為為什麼呢
c語言試題。字元串"ABC"在內存中佔用的位元組數為4,因為所有字元串都有一個'