整型
用于表示整数,没有小数部分。

(图片来源网络,侵删)
| 类型 | 描述 | 大小( | 范围( |
|---|---|---|---|
char |
字符型 | 1 字节 | -128 到 127 或 0 到 255 |
unsigned char |
无符号字符型 | 1 字节 | 0 到 255 |
short |
短整型 | 2 字节 | -32,768 到 32,767 |
unsigned short |
无符号短整型 | 2 字节 | 0 到 65,535 |
int |
整型 | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned int |
无符号整型 | 4 字节 | 0 到 4,294,967,295 |
long |
长整型 | 4 或 8 字节 | 范围取决于系统 |
unsigned long |
无符号长整型 | 4 或 8 字节 | 范围取决于系统 |
long long |
双长整型 (C99标准) | 8 字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long long |
无符号双长整型 (C99标准) | 8 字节 | 0 到 18,446,744,073,709,551,615 |
注意:
char类型虽然主要用于存储字符(如 'A', '0'),但在本质上是整型,可以参与算术运算。int的大小在不同编译器和操作系统上可能不同(通常是4字节,但在一些嵌入式系统中可能是2字节)。long的大小在64位系统上通常是8字节,在32位系统上是4字节。
浮点型
用于表示带有小数部分的实数。
| 类型 | 描述 | 大小( | 精度( |
|---|---|---|---|
float |
单精度浮点型 | 4 字节 | 约 7 位有效数字 |
double |
双精度浮点型 | 8 字节 | 约 15-16 位有效数字 |
long double |
长双精度浮点型 | 8、12或16字节 | 通常比 double 更高 |
注意:
float提供的精度有限,不适合需要高精度的科学计算或财务计算。double是最常用的浮点类型,提供了更高的精度和更大的表示范围。long double的精度和大小同样取决于实现。
枚举类型
用于定义一组命名的整型常量。

(图片来源网络,侵删)
- 它本身是一种独特的类型,但在底层,编译器通常将其实现为整型(通常是
int)。 - 使用
enum关键字定义。
示例:
enum Weekday { MON, TUE, WED, THU, FRI, SAT, SUN };
// 这里 MON, TUE, ... SUN 分别代表 0, 1, 2, ... 6
空类型
这是一个特殊的类型,表示“无类型”或“无值”。
- 它的主要用途是作为函数的返回类型,表示该函数不返回任何值。
- 它的唯一可能的值是
NULL指针,但NULL实际上是一个(void *)类型的指针。 - 使用
void关键字。
示例:
void printMessage() {
printf("Hello, World!\n");
// 这个函数不返回任何值
}
| 类别 | 关键字 | 描述 |
|---|---|---|
| 整型 | char, short, int, long, long long |
及其 unsigned 版本 |
| 浮点型 | float, double, long double |
用于表示实数 |
| 枚举型 | enum |
用于定义一组相关的命名常量 |
| 空类型 | void |
表示无类型,主要用于函数返回值 |
重要提示:C标准只规定了这些类型的最小大小和范围,sizeof(short) <= sizeof(int) <= sizeof(long),在不同平台(如Windows, Linux, macOS)或不同编译器(如GCC, Clang, MSVC)上,这些类型的具体大小和范围可能会有所不同,可以使用 sizeof() 运算符来检查在你的特定环境中某个类型的大小。
