基本数据类型
int、float、double、char、sizeof 运算符、类型范围
基本数据类型
C 语言的数据类型精确反映内存大小——不像 Python 那样动态,但给你完全的控制权。
学完本章你将: 掌握 int/float/double/char、sizeof 运算符、类型范围。
基本类型速查
| 类型 | 大小(字节) | 范围 |
|---|---|---|
| char | 1 | -128 ~ 127 |
| short | 2 | -32768 ~ 32767 |
| int | 4 | -2^31 ~ 2^31-1 |
| long | 4 或 8 | 平台相关 |
| float | 4 | ~7 位精度 |
| double | 8 | ~15 位精度 |
sizeof —— 查看类型大小
c
#include <stdio.h>
int main() {
printf("char: %zu 字节\n", sizeof(char)); // 1
printf("int: %zu 字节\n", sizeof(int)); // 4
printf("float: %zu 字节\n", sizeof(float)); // 4
printf("double: %zu 字节\n", sizeof(double)); // 8
return 0;
}
unsigned —— 无符号类型
c
unsigned int a = 4294967295; // 范围 0 ~ 2^32-1
// 有符号 int 最大才 2147483647
signed int b = -100; // signed 是默认,可省略
整型溢出陷阱
c
int a = 2147483647; // int 的最大值
a = a + 1; // 溢出 → 变成 -2147483648(行为未定义)
unsigned int b = 0;
b = b - 1; // 0-1 → 4294967295(无符号回绕)
⚠️ C 语言不会检查溢出,这是很多安全漏洞的根源(如整数溢出攻击)。计算时要自己判断范围。