變量與內(nèi)存(基礎(chǔ)知識)

資料:Python中的變量與內(nèi)存理解


C語言中的基本數(shù)據(jù)類型

在32位、64位系統(tǒng)當(dāng)中,唯一改變的是指針的長度;在32位系統(tǒng)當(dāng)中是4個字節(jié)、64位則是8個字節(jié)。所謂的32位、64位,這個指的是寄存器的位寬。

32位的操作系統(tǒng)下每種類型所占內(nèi)存

>int:4字節(jié) ? ? ? ? >unsigned ?int:4字節(jié)

>short:2字節(jié) ? ? ? ? >unsigned short:2字節(jié)

>long:4字節(jié) ? ? ? >unsigned long:4字節(jié)

>long ?long:8字節(jié) ? ? ? ? ?>unsigned ?long ?long :8字節(jié)

>char :1字節(jié)

>float:4字節(jié)

>double:8字節(jié) ? ? ? ?>unsigned double:4字節(jié)

>long double:有的是8字節(jié),有的是10字節(jié),有的是12字節(jié)或16字節(jié)。規(guī)定long double的精度不少于double的精度,就像int和long int一樣。關(guān)于具體的編譯器的情況, 可以打印 sizeof(long double)得知。

>string:32字節(jié)

>所有類型的指針都是 4字節(jié)

>共有體(聯(lián)合體)union:取其中占有字節(jié)數(shù)最大的數(shù)據(jù)類型所占有的字節(jié)數(shù)。

>函數(shù):除了void型。其他都函數(shù)占有的字節(jié)數(shù)等于函數(shù)的返回類型所占有的字節(jié)數(shù)。與函數(shù)體內(nèi)部無關(guān)。

如:float ?fun(){ return 2;}

sizeof(fun())= 8

>結(jié)構(gòu)體、類:內(nèi)部各數(shù)據(jù)類型占用之和,注意邊界對齊。如:

?struct fun1{

int a;???//4

double b;??//8

char c;?????//1

};

sizeof(fun1)=24

truct fun2{

int a;???//4

char c;?????//1

};

sizeof(fun2)=8

特殊:

structfun3{

string a;???//32

char b,c,d;?????//3

};

sizeof(fun3)=36

整型的每一種都有無符號(unsigned)和有符號(signed)兩種類型,在默認(rèn)情況下聲明的整型變量都是有符號的類型(char有點(diǎn)特別),如果需聲明無符號類型的話就需要在類型前加上unsigned。無符號版本和有符號版本的區(qū)別就是有符號類型需要使用一個bit來表示數(shù)字的正負(fù),比如16位系統(tǒng)中一個int能存儲的數(shù)據(jù)的范圍為–32768 ~ 32767(16位2進(jìn)制的最高位作為符號位‘1’為負(fù)‘0’為正),而unsigned能存儲的數(shù)據(jù)范圍則是0~65535(這個最高位不用做符號位,所以是2的16次方,一共65536)。由于在計(jì)算機(jī)中,整數(shù)是以補(bǔ)碼形式存放的。根據(jù)最高位的不同,如果是1,有符號數(shù)的話就是負(fù)數(shù);如果是無符號數(shù),則都解釋為正數(shù)。同時在相同位數(shù)的情況下,所能表達(dá)的整數(shù)范圍變大。另外,unsigned若省略后一個關(guān)鍵字,大多數(shù)編譯器都會認(rèn)為是unsigned int

64位系統(tǒng)下的long類型和pointer(指針)類型長度為64位

32位和64位的區(qū)別還涉及了內(nèi)存的尋址方面,32位系統(tǒng)的最大尋址空間是2 的32次方= 4294967296(bit)= 4(GB)左右,而64位系統(tǒng)的最大尋址空間的尋址空間則達(dá)到了2的64次方= 4294967296(bit)的32次方=數(shù)值大于1億GB。換而言之,就是說32位系統(tǒng)的處理器最大只支持到4G內(nèi)存,而64位系統(tǒng)最大支持的內(nèi)存高 達(dá)億位數(shù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容