整数类型

整数没有小数点。同是「整数」,宽度不同,范围就不同。范围装不下就溢出。

1. 概念:宽度与范围

类型常见大小大致范围(数量级)用途直觉
short2 字节约 ±3 万省空间小整数
int4 字节约 ±21 亿最常用
long long至少 8 字节很大大计数
unsigned int4 字节0 ~ 约 42 亿非负、位掩码

2. 完整例子

C
1#include <stdio.h>
2 
3int main(void) {
4 int count = 10;
5 unsigned int flags = 0x0Fu;
6 short temp_c = 25;
7 
8 printf("count=%d\n", count);
9 printf("flags=%u\n", flags);
10 printf("temp=%d\n", temp_c);
11 printf("sizeof(int)=%zu\n", sizeof(int));
12 return 0;
13}

3. 拆解

4. 溢出概念

C
1/* 概念示意:不要依赖溢出行为做业务逻辑 */
2unsigned int u = 0u;
3u = u - 1u; // 无符号会回绕到很大值(如 0xFFFFFFFF)
4/* 有符号溢出是未定义行为,可能异常 */