引自行者三個石
寫在前面
- 圖中是C語言的所有數據類型,在計算機中,數據是存儲在計算機中的一個個單元里面,它是具體存在的。而且,存儲單元是由有限的字節構成的,每一個存儲單元存儲的數據是有限的,不可能存放無限大的數,也不能存放無限循環小數.
- 計算機內存:在執行程序時,組成程序的指令和數據都必須存儲在計算機內存中,即RAM。
- RAM其實可以看成是一排井然有序的盒子。每個盒子有兩種狀態:0和1,也就是代表一個二進制數:0或者1。每個盒子稱為一個位(bit)。每8個位組成一個字節(byte)。計算機中,一個英文字母是一個字節,中文漢字是兩個字節。
整數類型
- 基本類型(int類型)
我們的gcc是給每個整數型分配四個字節(32個二進位)。所以四個字節的整數型取值范圍是 -2^31 到(2^31-1)。 - 短類型(short類型)
gcc分配給2個字節,取值 -2^15 到(2^15-1)。 - 長整型(long類型)
gcc分配8個字節,取值范圍:-2^63 到(2^63-1)。
浮點型數據
浮點型數據是用來表示具有小數點的實數的。為什么叫浮點型?因為在C語言中,實數是以指數的形式存放在存儲單元的。而實數的指數可以變化,通過移動小數點的位置,而整個實數值是不會發生變化的,因此叫做浮點型。
- float(單精度)
gcc編譯系統為其分配4個字節,存儲時分為小數部分和指數部分,分別存儲可以得到7位。 - double(雙精度)
用8個字節(64位)存儲一個double型數據,可以得到15位有效數字。 - long double
用16個字節(128位)存儲一個long double型數據型,可以得到18位有效數據。
字符型
字符型常量通常是用單引號括起來的一個字符,所有的編譯系統中,都是用1個字節(8位)來存放一個字符。字符型數據在存儲時,是通過相應的ASCII碼值放到存儲單元中。字符常量,是區分大小寫的,因為對于的ASCII碼不同。
字符串常量
- 字符串常量是用一對雙引號括起來的零個或多個字符組成的序列,如 "hello","chine","f" 都是字符串常量。
- 字符串常量的存儲與字符常量的存儲是不同的。字符串中的每個字符占用一個字節,在存儲字符串常量時還要自動在其末尾加上 '\0' 作為字符串結束的標志。
所以大家一定要區別清楚,'a'和"a"是完全不同的。前者是字符常量,一個字節;而后者是字符串常量,有兩個字節,‘b’和'\0'.