C語言允許使用的數據類型有三類。
(1) 基本類型。不可再分的最基本的數據類型,包括整型、浮點(單精度)型、雙精度型、字符型、無值類型、邏輯型及復數型。基本類型通常代表單個數據。
(2) 構造類型。由已知的基本類型通過一定的構造方法構造出來的類型,包括數組、結構體、聯合體、枚舉類型等。構造類型通常代表一批數據。
(3) 指針類型。指針可以指向內存地址,訪問效率高,用於構造各種形態的動態或遞歸數據結構,如鏈表、樹等。
1.1 基本數據類型
1.基本數據類型及其關鍵字
C99標准提供的7種基本數據類型及其對應的關鍵字如表所示。
數據類型 |
關鍵字 |
數據類型 |
關鍵字 |
字符型 |
char |
無值類型 |
void |
整型 |
int |
邏輯型 |
_bool |
浮點(單精度)型 |
float |
復數型 |
_complex_imaginary |
雙精度型 |
double |
|
|
字符型:描述單個字符;
整型:描述整數,整數在計算機上是准確表示的;
浮點型、雙精度型:描述實數,實數在計算機上一般是近似表示的,浮點型的近似程度比較低,而雙精度型的近似程度比較高。
無值類型:沒有具體的值,通常用來描述無形式參數或無返回值的C函數,以及無定向指針。
邏輯型:描述邏輯真(其值為1)與邏輯假(其值為0)。
復數型:描述復數(_complex)和純虛數(_imaginary)。
使用邏輯型時必須包含頭文件stdbool.h,使用復數型時必須包含頭文件complex.h。
2.基本數據類型的存儲方式和取值范圍、基本數據類型的擴展
類型 |
長度/字節 |
取值范圍 |
存儲方式 |
char |
1 |
-128~127 |
有符號二進制補碼形式 |
[signed]char |
1 |
-128~127 |
|
unsigned char |
1 |
0~255 |
|
short [int] |
2 |
-32768~32767 |
|
unsigned short [int] |
2 |
0~65535 |
|
int |
4 |
-2147483648~2147483647 |
定點有符號二進制補碼形式 |
[signed] int |
4 |
-2147483648~2147483647 |
|
unsigned [int] |
4 |
0~4294967295 |
|
long [int] |
4 |
-2147483648~2147483647 |
|
[signed] long [int] |
4 |
-2147483648~2147483647 |
|
unsigned long [int] |
4 |
0~4294967295 |
|
float |
4 |
-3.4*10^38~3.4*10^38 |
浮點形式存儲 |
double |
8 |
-1.798*10^308~1.798*10^308 |
浮點形式存儲 |
long double |
8 |
-1.798*10^308~1.798*10^308 |
|
short int<=int<=long int<=long long int
float<=double<=long double