㈠ c語言求位元組長度
等於4。在這里char數組作為參數的話,只能當做char*型,也就是指針類型,而一個指針佔4個位元組。所以sizeof(str)=4。
㈡ 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語言求位元組
在vc中int是佔4個位元組
所以3個int
佔12個
在tc中int佔2個位元組
就佔6個
一般書上說的都是int
2位元組,long
int
4位元組,
vc
中int
和
long
int
都是4位元組
㈣ 一個數字在C語言中是多少個位元組
一個數字在C語言中是2、4、8個位元組,以int類型、float類型和double類型來表示。
int類型佔用2位元組內存,表示整數,數據范圍在-2^31~2^31-1(-2147483648~2147483647)之間。
float類型佔用4位元組內存,表示單精度浮點數,數據范圍在-2^128 ~ 2^128(-3.40E+38 ~ +3.40E+38)之間。
double類型佔用8位元組內存,表示雙精度浮點數,數據范圍在-2^256 ~ 2^256(-1.90E+308 ~ +1.80E+308)之間。
(4)c語言計算位元組數擴展閱讀:
雙精度浮點型類型數值可轉換到其他類型的整數或浮點數,反之亦然。雙精度浮點型常量的最後一個字元可加上「d」或「D」。其存儲格式與浮點型類似,最高位為符號位,次高11位為指數位,其次52位為尾數。
雙精度浮點型同數值型比,它能提供更高的數值精度,採用固定存儲長度的浮點數形式,每個雙精度浮點型數據佔8個位元組。與數值型數據不同,它的小數點位置是由輸入的數據值來決定的,並且只能用於表中的欄位。
㈤ 求位元組數的c語言程序
用sizeof運算符可以計算任何一個變數或者類型的位元組數。
例如:
double
num=12.57;
int
len=sizeof(num);
//就得到double的位元組數了
㈥ C語言中,位元組數怎樣算
\xff是轉義0xff,這個內容是2位元組。
如果作為字元串,還要有個0x0作結束符,實際需要佔用的內存是3位元組。
㈦ c語言中字元串所佔位元組數怎麼算
在純ASCII碼下,位元組數=字元串長度=字元個數,因為每個字元就一個位元組。
在Unicode下,位元組數/2=字元串長度=字元個數,因為每個字元都是2個位元組。
在ASCII碼與其它雙位元組字元系統混用時,位元組數=ASCII碼字元個數+雙位元組字元個數*2,
而此時字元串長度到底怎麼統計就不好說了,
【有的語言如C語言,此時字元串長度=位元組數,】
有的語言如JS,此時字元產長度=字元個數。
㈧ 求解C語言中位元組數的計算規律
11
int 佔2位位元組
char 佔1位位元組
double 佔8位位元組
㈨ C語言中如何輸出位元組數
a)putchar函數:將指定的(表達式的值所對應的)字元輸出到標准輸出終端(屏幕)上。
格式:int putchar( int c );
例如:putchar(『a』+3);列印的結果是d,是一個字元而不是數值。
a的ASCII碼是97,加3是ASCII碼表中100對應的字元就是d。
例如:putchar(99);列印的結果是c,代入一個數字列印出的是一個字元。
就如同代入的是學號,列印出來的是姓名一樣。
b)putc函數:將指定的字元輸出到指定標准輸出流(屏幕或一個文件)中。
格式:int putc( int c, FILE *stream );
c)等價關系:putc的功能中包含putchar的功能。
putchar(c)等價於putc(c,stdout)。
例如:putc(『A』,stdout)等價於putchar(『A』)
(9)c語言計算位元組數擴展閱讀
C語言的字元對齊
1、數據類型自身的對齊值:對於char型數據,其自身對齊值為1,對於short型為2,對於int,float,double類型,其自身對齊值為4,單位位元組。
2、復雜類型(如聯合,結構體或者類)的自身對齊值:其成員中自身對齊值最大的那個值。
3、指定對齊值:#pragma pack (value)時的指定對齊值value。
4、數據成員、復雜類型(如聯合,結構體或類)的有效對齊值:自身對齊值和指定對齊值中小的那個值。
㈩ c語言怎樣計算所佔位元組
主要是看變數定義的類型;
char佔一個位元組,int佔四個位元組,float佔四個位元組,double佔8個位元組;
當要注意的是在字元串中要加個'\0',要多算一個位元組。