1樓:匿名使用者
c語言中,int, char和short int三種型別變數所佔用的記憶體大小因機器的不同有所不同。
一般在32位及以上機器上,int佔四位元組,char佔一位元組,short佔2位元組。
可以通過sizeof()命令獲取本機器上的各型別的佔記憶體的大小,參考**如下:
#include
void main()
2樓:匿名使用者
int 四個位元組,char一個位元組,short int 兩個位元組vc++編譯器下,可用以下**測試:
#include
int main()
3樓:匿名使用者
分別佔4,1,2,int的大小與編譯器有關,有時可能也佔2位元組
4樓:苦孩子
在vc中是4,1,2
不同的編譯器可能佔不同記憶體
5樓:匿名使用者
似乎是跟編譯器有關,一般int 4個位元組,short int 2位元組,char 1個位元組
6樓:匿名使用者
32位計算機下分別是4,1,2位元組
7樓:shine過客_驛站
32位的計算機的話 依次就是4 1 2 16位的計算機的話 依次就是 2 1 1
8樓:wlc天使的眼淚
可以用sizeof(int )自己試試
在c語言中,int,char和short三種型別資料在記憶體中所佔的位元組數 40
9樓:蔣金多多多
總結一下哈
:針對bai大部分du32位機器來說所佔記憶體是:zhi char 字元型dao 1個;int整型2 個;short 2 個;但是,不同專的屬機器,和不同的編譯軟體下,都會不同。
所以你可以用sizeof()函式測試一下。例sizeof(char);
這裡補充下我的答案,之前回答這個問題時候,自己還是一名微控制器開發愛好者,c51微控制器中的int確實是16位,兩個位元組。
而現在的我從事應用軟體開發,在這些編譯器中(比如vs、gcc),int一般都是4位的(無論32位還是64位)。事實上,一個比較官方的解釋是:編譯器可以根據自身硬體來選擇合適的大小,但是需要滿足約束:
short和int型至少為16位,long型至少為32位,並且short型長度不能超過int型,而int型不能超過long型。這即是說各個型別的變數長度是由編譯器來決定的。
10樓:
16位編譯bai器
char :1個字
du節zhi
char*(即指標變數): 2個字dao節回short int : 2個位元組
int: 2個位元組
unsigned int : 2個位元組
float: 4個位元組
double: 8個位元組
long: 4個位元組
long long: 8個位元組
unsigned long: 4個位元組
32位編譯器
答char :1個位元組
char*(即指標變數): 4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。同理64位編譯器)
short int : 2個位元組
int: 4個位元組
unsigned int : 4個位元組
float: 4個位元組
double: 8個位元組
long: 4個位元組
long long: 8個位元組
unsigned long: 4個位元組
64位編譯器
char :1個位元組
char*(即指標變數): 8個位元組
short int : 2個位元組
int: 4個位元組
unsigned int : 4個位元組
float: 4個位元組
double: 8個位元組
long: 8個位元組
long long: 8個位元組
unsigned long: 8個位元組
11樓:匿名使用者
理論像樓上說的這樣,實際上int型變數要看機器32位和64位機器是不同的,你可以用
sizeof()函式測試一下
12樓:六閒村
字元型 char 1 位元組
整型 int 2 位元組zhishort 2 位元組
長整dao型 long 4 位元組單精回度答 float 4 位元組雙精度 double 8 位元組
13樓:
完全同意二樓的說法。不同的機子位數是不一樣的!
在c語言中,int,char,short三種型別資料在記憶體中所佔的位元組數由什麼決定
14樓:蔣金多多多
總結一下哈:針對大部分32位機器來說所佔記憶體是: char 字元型 1個;int整型2 個;short 2 個;但是,不同的專機屬器,和不同的編譯軟體下,都會不同。
所以你可以用sizeof()函式測試一下。例sizeof(char);
這裡補充下我的答案,之前回答這個問題時候,自己還是一名微控制器開發愛好者,c51微控制器中的int確實是16位,兩個位元組。
而現在的我從事應用軟體開發,在這些編譯器中(比如vs、gcc),int一般都是4位的(無論32位還是64位)。事實上,一個比較官方的解釋是:編譯器可以根據自身硬體來選擇合適的大小,但是需要滿足約束:
short和int型至少為16位,long型至少為32位,並且short型長度不能超過int型,而int型不能超過long型。這即是說各個型別的變數長度是由編譯器來決定的。
15樓:匿名使用者
通常char佔1個位元組,short佔2個位元組。原因是,1個位元組可以表示一個ascii碼,為了提高計算機的數版據處理權能力,short用一個位元組遠遠不足,但限於早年的儲存器體積和**,用2個位元組也是不得以的事情。現在,儲存器的體積不再是考慮的因素,**也不是「事」,cpu的資料暫存器已經是64位(8個位元組),32位的cpu已近末日黃昏,所以short用8個位元組表示不再是夢。
所謂64位的cpu,指的就是其資料暫存器(包括指令暫存器)的寬度是64bits,一次讀取、儲存64bits最為快捷,這就是int型別資料的標準寬度。
16樓:匿名使用者
一般來說
int 4位元組
char 1位元組
short 2位元組
由編譯器決定的,編譯器會根據系統平臺自己改變資料型別的取值範圍。
17樓:匿名使用者
理論像樓上說的這樣,實際上int型變數要看機器32位和64位機器是不同的,你可以用
sizeof()函式測試一下
18樓:
16位編譯器
char :1個字
節char*(即指標變數): 2個位元組專
屬short int : 2個位元組
int: 2個位元組
unsigned int : 2個位元組
float: 4個位元組
double: 8個位元組
long: 4個位元組
long long: 8個位元組
unsigned long: 4個位元組
32位編譯器
char :1個位元組
char*(即指標變數): 4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。同理64位編譯器)
short int : 2個位元組
int: 4個位元組
unsigned int : 4個位元組
float: 4個位元組
double: 8個位元組
long: 4個位元組
long long: 8個位元組
unsigned long: 4個位元組
64位編譯器
char :1個位元組
char*(即指標變數): 8個位元組
short int : 2個位元組
int: 4個位元組
unsigned int : 4個位元組
float: 4個位元組
double: 8個位元組
long: 8個位元組
long long: 8個位元組
unsigned long: 8個位元組
19樓:六閒村
字元型 char 1 位元組
整型 int 2 位元組
short 2 位元組
長整型 long 4 位元組
單精度 float 4 位元組
雙精度 double 8 位元組
20樓:匿名使用者
是由c語言編譯器來決定的!
C語言中c m和c m的區別,C語言中 「 c m」和「c m」的區別是什麼?
是取址運算bai符,取變數在內du存單元中的首zhi地址dao,取地址運算子的操作物件必須專是記憶體單元 如變數 數屬組元素等 是間接訪問運算子,間接訪問指標所指向的物件,運算子的操作物件必須是指標 地址 因此 c m是把m在記憶體中的地址賦給c這個指標指向的變數c m是把m的地址賦給c這個指標 1...
c語言中作用C語言中作用
取決於在scanf中使用還是在printf中使用。在scanf中使用,則新增了 的部分會被忽略,不會被引數獲取。例如輸入為 12 abc那麼12將會讀取到變數a中,但是後面的abc將在讀取之後拋棄,不賦予任何變數 例如這裡的字元陣列b 在printf中使用,表示用後面的形參替代的位置,實現動態格式輸...
請問C語言中,1,請問C語言中,
是求餘數的意思,a b也就是a除以b餘幾 1 2 0餘1,那1 2 1 這裡 是取餘數的意思 1除以2 餘數就是1咯 計算步驟的話。cpu有直接的整數除法指令,商和餘數分別放在不同的暫存器裡。這些都交給編譯器了,我們不用理了 取模運算。也就是1除2的餘數?結果 1 除數是2的時候很特殊.a 2 等同...