基本數據類型
| 數據類型 | 關鍵字 | 描述 |
|---|---|---|
| 字符型 | char | 描述單個字符。 |
| 整型 | short/int/long | 描述整數,整數在計算機上是準確表示的。 |
| 浮點(單精度)型 | float | 描述實數,實數在計算機上一般是近似表示的,浮點型的近似程度比較低,而雙精度型的近似程度比較高。 |
| 雙精度型 | double | 描述實數,實數在計算機上一般是近似表示的,浮點型的近似程度比較低,而雙精度型的近似程度比較高。 |
| 數據類型 | 關鍵字 | 描述 |
|---|---|---|
| 無值類型 | void | 沒有具體的值,通常用來描述無形式參數或無返回值的C函數,以及無定向指針。 |
| 邏輯型 | _bool | 描述邏輯真(其值為1)與邏輯假(其值為0)。 |
| 復數型 | _complex_imaginary | 描述復數(_complex)和純虛數(_imaginary)。 |
備注:使用邏輯型時必須包含頭文件stdbool.h,使用復數型時必須包含頭文件complex.h。
| 構造數據類型 | 關鍵字 | 描述 |
|---|---|---|
| 數組 | type arrayName [ arraySize ] | arraySize 必須是一個大于零的整數常量,type 可以是任意有效的 C 數據類型。例如,要聲明一個類型為 double 的包含 10 個元素的數組 balance,聲明語句如下: double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0}; |
| 結構體 | struct tag { member-list member-list member-list ... } variable-list ; |
member-list 是標準的變量定義,比如 int i; 或者 float f,或者其他有效的變量定義。variable-list 結構變量,定義在結構的末尾,最后一個分號之前,您可以指定一個或多個結構變量。。 |
| 共用體 | union Data{ int i; float f; char str[20]; } data; |
Data 類型的變量可以存儲一個整數、一個浮點數,或者一個字符串。這意味著一個變量(相同的內存位置)可以存儲多個多種類型的數據。您可以根據需要在一個共用體內使用任何內置的或者用戶自定義的數據類型。共用體占用的內存應足夠存儲共用體中最大的成員。例如,在上面的實例中,Data 將占用 20 個字節(jié)的內存空間,因為在各個成員中,字符串所占用的空間是最大的。 |
| 枚舉類型 | enum 枚舉名 {枚舉元素1,枚舉元素2,……}; | enum season {spring, summer=3, autumn, winter}; 沒有指定值的枚舉元素,其值為前一元素加 1。也就說 spring 的值為 0,summer 的值為 3,autumn 的值為 4,winter 的值為 5; |
詳細講解可參考地址:https://www.runoob.com/cprogramming/c-fun-pointer-callback.html
定義變量的同時千萬千萬別忘了初始化。定義變量時編譯器并不一定清空了這塊內存,它的值可能是無效的數據。
基本數據類型取值范圍
| 類型 | 長度/子節(jié) | 取值范圍 | 存儲方式 |
|---|---|---|---|
| char | 1 | -128~127 | 有符號二進制補碼形式 |
| [signed]char | 1 | -128~127 | |
| unsigned char | 1 | 0~255 | |
| short[int] | 2 | -32768~32768 | |
| unsigned short[int] | 2 | 0~65535 | |
| int | 4 | -2147483648~2147483647 | 定點有符號二進制補碼形式 |
| [signed]int | 4 | -2147483648~2147483647 | |
| unsigned int | 1 | 0~4294967295 | |
| long[int] | 2 | -2147483648~2147483647 | |
| unsigned long[int] | 4 | -2147483648~2147483647 | |
| unsigned long [int] | 4 | 0~4294967295 | |
| float | 4 | -3.410^38~3.410^38 | 浮點形式存儲 |
| double | 8 | -1.79810^308~1.79810^308 | 浮點形式存儲 |
| long double | 8 | -1.79810^308~1.79810^308 | 浮點形式存儲 |
備注:
short int<=int<=long int<=long long int
float<=double<=long double