當前位置:首頁 » 編程語言 » C語言所佔位元組

C語言所佔位元組

發布時間: 2022-04-20 05:18:58

c語言中一個英文字母.漢字.數字 分別都占幾個位元組啊

1、英文字母:如果是char 型,那麼是佔用1個位元組,如果是string型,應該是兩個。

char c = 'a';//它佔用一個字元

char c[] = "a";//佔用兩個。

char c[] = "abcde";//佔用4+1 = 5 個,結尾有一個''

2、數字:這個有很多中,從小到大分別為:short、int、float、long、double
分別為:1個、2個、4個、8個、16個

3、漢字:理論上說,一個漢字佔用兩個字元。比如:中國,就佔用4個字元,如果是:

char c[] = "中國";//佔用4+1 = 5個字元

char c = '中';//錯誤,不能這樣計算

(1)C語言所佔位元組擴展閱讀

1、C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

2、C語言的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據結構的運算。並引入了指針概念,使程序效率更高。

3、由於C語言允許直接訪問物理地址,可以直接對硬體進行操作,因此它既具有高級語言的功能,又具有低級語言的許多功能,能夠像匯編語言一樣對位(bit)、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統軟體。

參考資料 網路-C語言

Ⅱ 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語言中(Vc6.0),int, char,double分別佔多少位元組

int分為long int和short int,其中long int是4個位元組,short int是2個位元組。

char 1個位元組。

double 8個位元組。

拓展資料:

16位編譯器

char :1個位元組
char*(即指針變數): 8個位元組
short int : 2個位元組
int:4個位元組
unsigned int : 4個位元組
float:4個位元組
double:8個位元組
long:8個位元組
long long:8個位元組
unsigned long:8個位元組

Ⅳ c語言 char占幾個位元組

只佔一個位元組。

char用於C或C++中定義字元型變數,只佔一個位元組,取值范圍為 -128 ~ +127(-2^7~2^7-1)。

C語言中如int、long、short等不指定signed或unsigned時都默認為signed,但char在標准中不指定為signed或unsigned,編譯器可以編譯為帶符號的,也可以編譯為不帶符號的。

(4)C語言所佔位元組擴展閱讀

(1)定義:char型數據是計算機編程語言中只可容納單個字元的一種基本數據類型。

(2)取值范圍:char : -2^7 ~ 2^7-1 ;

signed char: -2^7 ~ 2^7-1

unsigned char : 0 ~ 2^8-1

而且關於char還有一個特殊的語言就是char *,它在C/C++中有專門的語義,既不同於signed char *,也不同於unsigned char *,專門用於指以''為結束的字元串。

Ⅳ 一個數字在C語言中是多少個位元組

在C語言中,一個數字佔4個位元組或8個位元組。(以下試驗都是基於32位計算機系統)
當該數字為整數時,佔4個位元組(默認轉換為int類型);
當該數字為小數時,佔8個位元組(默認轉換為double類型)。
可以通過如下的程序段來驗證:
printf("%d\n",
sizeof(4));
//
輸出4,即佔4個位元組(轉換為int類型,相當於sizeof(int))
printf("%d\n",
sizeof(4.5));
//
輸出8,即佔8個位元組(轉換為double類型,相當於sizeof(double))

Ⅵ 請問c語言中,int類型變數所佔位元組數是

2個位元組和4個位元組都是正確答案,對於16位的環境,如dos下的turbo
C
2.0
int型數據在內存中佔16位,是2個位元組;對於大多數32位環境,如windows
95
98
NT
2000
XP
,int型數據在內存中佔32位,是4個位元組

Ⅶ c語言類型所佔位元組數

類型

常見的有char、int、long、short、float、double及指針等.

字元類型

這里單只char,char變數在內存中存儲的是字元對應的ASCII碼值。所以長度也是固定的,為1個位元組。

整數類型

查了資料發現對各個類型的整數佔用位元組數是有一個規定的,雖然16位32位或者64位的機子各種類型所佔用的長度並不一樣。規則如下:

short 至少佔用2個位元組。
int 建議為一個機器字長。32位環境下機器字長為4位元組,64位環境下機器字長為8位元組。
short 的長度不能大於 int,long 的長度不能小於 int。
所以說,short並不一定短,long並不一定短,有可能都和int一樣長。

浮點數(小數)

C中浮點數有兩種,float和double,不像整數,小數的長度始終是固定的,float佔用4個位元組,double佔用8個位元組。

指針

C中指針即為地址,所以編輯器的定址空間則是指針的地址范圍。所以指針變數在32位機器的定址空間為2^32,要將所有地址都表示出來則需要為4個位元組長度,所以要佔用4個位元組長度。同理64位的編譯器則需要8個位元組長度。

Ⅷ 在C語言中各種數據類型各佔多少位

(一)32位平台:
分為有符號型與無符號型。
有符號型:
short 在內存中占兩個位元組,范圍為-2^15~(2^15-1)
int 在內存中佔四個位元組,范圍為-2^31~(2^31-1)
long在內存中佔四個位元組,范圍為-2^31~2^31-1
無符號型:最高位不表示符號位
unsigned short 在內存中占兩個位元組,范圍為0~2^16-1
unsigned int 在內存中佔四個位元組,范圍為0~2^32-1
unsigned long在內存中佔四個位元組,范圍為0~2^32-1
實型變數:
分單精度 float 和雙精度 double 兩種形式:
float:佔四個位元組,提供7~8位有效數字。
double: 佔八個位元組,提供15~16位有效數字。

(二)16位平台:
1)整型(基本型):類型說明符為int,在內存中佔2個位元組。
2)短整型:類型說明符為short int或short。所佔位元組和取值范圍均與整型(基本型)相同。
3)長整型:類型說明符為long int或long,在內存中佔4個位元組。
無符號型:類型說明符為unsigned。
無符號型又可與上述三種類型匹配而構成:
各種無符號類型量所佔的內存空間位元組數與相應的有符號類型量相同。但由於省去了符號位,故不能表示負數。
實型變數:
分為單精度(float型)、雙精度(double型)和長雙精度(long double型)三類。
單精度型佔4個位元組(32位)內存空間,其數值范圍為3.4E-38~3.4E+38,只能提供七位有效數字。
雙精度型佔8 個位元組(64位)內存空間,其數值范圍為1.7E-308~1.7E+308,可提供16位有效數字。
長雙精度型16 個位元組(128位)內存空間,可提供18-19位有效數字。

Ⅸ c語言int占幾個位元組

在一般的電腦中,int佔用4位元組,32比特,數據范圍為-2147483648~2147483647[-2^31~2^31-1]

在之前的微型機中,int佔用2位元組,16比特,數據范圍為-32768~32767[-2^15~2^15-1]

使用printf輸出int佔用位元組數量:

printf("%d",sizeof(int));

除了int類型之外,還有short、long、long long類型可以表示整數。

unsigned int 表示無符號整數,數據范圍為[0~2^32-1]

(9)C語言所佔位元組擴展閱讀:

int 占 4個位元組 只能表示整數。

char 佔1個位元組 只能表示字元。

float 和double都是表示小數,float佔4位元組,double 佔8位元組,表示的數據范圍不一樣。

熱點內容
伺服器e3與e5有什麼區別 發布:2025-01-24 06:19:35 瀏覽:122
linuxdb2建資料庫 發布:2025-01-24 06:19:09 瀏覽:665
武漢長江存儲公司有多少人 發布:2025-01-24 06:09:03 瀏覽:413
ftp伺服器輸入密碼 發布:2025-01-24 05:27:41 瀏覽:210
電信帳號怎麼改密碼 發布:2025-01-24 05:11:22 瀏覽:847
筆記本x17配置怎麼選 發布:2025-01-24 05:05:53 瀏覽:8
python如何封裝 發布:2025-01-24 05:05:46 瀏覽:844
csgo怎麼連接伺服器 發布:2025-01-24 05:05:45 瀏覽:323
408哪個配置合適 發布:2025-01-24 05:01:54 瀏覽:883
oraclesql刪除重復 發布:2025-01-24 05:01:12 瀏覽:409