1樓:匿名使用者
不一定。機器型別不同,同樣都是整型,佔用記憶體可能不同。比如16位機,整型可能是16位,32位機,整型可能是32位。
跟採用的編譯器也有很大關係,有的編譯器把整型編譯為16位,有些編譯為32位。
2樓:錯過
一樣,你定義變數型別的時候記憶體空間就已經分配了,而且是固定大小的記憶體!
不過有的程式軟體規定的儲存空就按可能有區別;一款軟體上肯定是一樣的!
不論存不存數!
3樓:匿名使用者
除了int外,其他都一樣。int在某些機子上是2位元組,在某些機子上是4位元組。但在同一臺機子上,肯定是一樣大小的。
4樓:匿名使用者
和作業系統有關,比如,window7有的是32位的,有的是64位的,所以對於int型,32位的作業系統就是32bit,用4個byte的記憶體...64位的就是64bit,用了8個位元組的記憶體。。其他型別基本一樣
在c語言中,只有在使用時才佔用記憶體單元的變數,其儲存型別是()
5樓:鐳毅
a排除法:
static是不可能的,排除c\d
b是外部的register型變數。
c語言中,對於儲存型別為(c)的變數,只有在使用它們時才佔用記憶體單元
6樓:匿名使用者
static是靜態變數,在程式中的生命週期是最長的,在程式執行中一直存在。extern是外部變數,這個變數在程式外部定義,也是始終存在的。而auto和retister都是在程式執行到這裡時申請記憶體單元,用完後隨即就釋放了。
指標的資料型別為什麼要跟所指向的資料的型別一致,不是說所有的指標變數佔用的記憶體大小是相同的嗎??
7樓:匿名使用者
指標變數所bai需要的儲存
空間的確du是相同的zhi
。它都需要最高字長dao的儲存空間。
但在指標指向內不同型別的容
資料型別空間時,指標操作是不同的,見下示例**:
unsigned char * ptrchar;
unsigned int * ptrint;
ptrchar=(unsigned char *)0x0000;
ptrint=(unsigned int *)0x0000;
ptrchar++;
ptrint++;
最後兩個指標++操作,看**都是用的加加操作符,但實際上,指向無符號char型資料的指標,在加加操作後,ptrchar中的值是0x0001,因為每個無符號char只佔用一個位元組,而ptrint在加加操作後,其值是0x0004,因為每個整型佔用4個位元組。
8樓:安城百合子
這是c語言的語法要求,因為不同型別的指標,在作+-運算時,它的步長是不一樣的。
9樓:
所有的指標變數佔用的記憶體大小是相同的,這個記憶體中儲存的不是資料的值,而是指標的
回值,指標的值答是一個記憶體地址,也就是指標指向資料的首地址,根據這個地址只能得到指標指向資料的開始位置,並不知道這是什麼型別的資料,所以指標的型別就決定了資料的型別
10樓:匿名使用者
你是什麼指標?很多語言都有指標的。
指標儲存的是資料的首地址,它指向和它同一型別的資料。跟佔用多少空間沒關係。用int型指向int型,double指向double型,等等。如果不匹配會發生錯誤。
11樓:匿名使用者
是的,它只是要知道你指向的資料是什麼型別而已。
12樓:匿名使用者
所有指標 都是佔來用4個位元組這個是自沒錯
但是為什麼bai不能用du呢?給你舉個例子。
int a = 0x00000fff;
char *p = &a;
printf("%d\n", *p);
結果是255。也zhi
就是說 每一dao個型別的指標所取的bit長度不一樣!char型別佔用8bit, int 32bit,short 16bit。
上邊這個例子不好
由於 是有符號的 所以255 打出來是-1改一下int a = 0x00000f0f;
這樣的話就是15了
c語言中,int, char和short int三種型別變數所佔用的記憶體大小是
13樓:匿名使用者
c語言中,int, char和short int三種型別變數所佔用的記憶體大小因機器的不同有所不同。
一般在32位及以上機器上,int佔四位元組,char佔一位元組,short佔2位元組。
可以通過sizeof()命令獲取本機器上的各型別的佔記憶體的大小,參考**如下:
#include
void main()
14樓:匿名使用者
int 四個位元組,char一個位元組,short int 兩個位元組vc++編譯器下,可用以下**測試:
#include
int main()
15樓:匿名使用者
分別佔4,1,2,int的大小與編譯器有關,有時可能也佔2位元組
16樓:苦孩子
在vc中是4,1,2
不同的編譯器可能佔不同記憶體
17樓:匿名使用者
似乎是跟編譯器有關,一般int 4個位元組,short int 2位元組,char 1個位元組
18樓:匿名使用者
32位計算機下分別是4,1,2位元組
19樓:shine過客_驛站
32位的計算機的話 依次就是4 1 2 16位的計算機的話 依次就是 2 1 1
20樓:wlc天使的眼淚
可以用sizeof(int )自己試試
c語言 設有以下結構型別說明和變數定義,則變數b在記憶體所佔位元組數是 _____。
21樓:匿名使用者
short佔兩個位元組
char佔一個位元組,陣列容量為3,所以總共佔3個位元組float佔四個位元組,陣列容量為2,所以總共佔8個位元組double佔8個位元組
總共加一起就是21個位元組
22樓:篤俠
short int -- 2
char -- 1*3=3
float -- 4*2=8
double -- 8
合計 21
求, c語言中所有常見的資料型別(如short,float,int,char,等等)在記憶體中所佔的
23樓:匿名使用者
變數佔用記憶體位元組
由作業系統決定,
64位系統中,long佔用8位元組,……
32位作業系統中,回int,long佔用4位元組答,short佔用2位元組……
16位系統中,int佔用2位元組,……
數字3佔用多少,和你宣告的的型別有關,
在32位系統中,將3賦值給short型變數,他就佔用2個位元組,如果賦值給int型,他就佔用4個位元組
可以用sizeof這個函式來計算。例子:
int x, n;
n = sizeof(x);
n的值就是結果。使用sizeof求,
#include
int main()
不同軟體編譯答案不同
24樓:匿名使用者
字元型 char 1 位元組
整型 int 2 位元組 short 2 位元組長整型 long 4 位元組
單精度 float 4 位元組
雙精度 double 8 位元組
c語言中,設定一個變數,它的數值大小(如20,20000)它們佔的位元組數相同嗎?位元組數與變數大小有關嗎?
25樓:匿名使用者
任何資料在計算機中都是二進位制表示,變數佔幾個位元組是編譯器決定,有可能是4個有可能是2個。現在編譯器編譯後基本都是佔4個位元組的。就是32個1或0組成資料
20用二進位制表示就是 00000000000000000000000000010100
20000 二進位制表示是 00000000000000000000000010100000
你可以看到在計算機中都是佔32位的,只不過不同位上 是0還是1的問題。
這樣說能明白些麼?
26樓:匿名使用者
1 變數的數值大小(如20,20000)不同,它們佔的位元組數相同。
2 變數的佔用的位元組數與變數的表示範圍有關。
27樓:沒有響應
這個在你設定變數的時候已經決定了
int a=20
int a=20000
它們在記憶體中佔的空間是一樣大的
28樓:匿名使用者
無關,佔用記憶體相同
小的資料高位是0
假如int是4個位元組
16的16進製表示是0x10
記憶體為0x00000010
65536的16進製為0x10000
記憶體為0x00010000
29樓:0o閉關修煉
只跟你的變數型別有關。跟變數的值無關。
c語言,double型別的變數使用scanf 函式賦值後再
c語言中double輸入輸出,都用 lf 進行格式化,是否寫成了 f,這個是float型別。include int main 2.字元定義如下 字元 對應資料型別 含義 d i int 接受整數值並將它表示為有符號的十進位制整數,i是老式寫法 o unsigned int 無符號8進位制整數 不輸出...
c語言中變數的地址是什麼型別的,C語言中變數的地址是什麼型別的
風若遠去何人留 變數的地址,在c語言中,一般寫作指標型別。不同型別的變數地址,用不同的指標進行儲存。比如,char 型別的地址,使用char 儲存,而int型地址,用int 儲存。除此外,部分情況下也會採用整型型別來儲存變數地址,具體使用何種整型型別,取決於編譯器 1 16位編譯器,地址佔16位,2...
c語言中定義變數的資料型別比如intchar有
1.首先你要多看看記憶體管理方面的內容。記憶體是由系統管理的,int和char,如果是常量那麼他們會被分配到常量區,如果是靜態變數,會被分到靜態變數區,區域性變數,又不一樣。不同的定義,記憶體地址肯定是不同的,這個系統自己管理。2.沒影響。但對執行時所佔空間就就有影響。源程式檔案大小隻是 量的大小 ...