跳转至

变量类型总览

类型表

类型 关键字 大小 取值范围
字符型 char 1 字节 -128 ~ 127
短整型 short 2 字节 -32,768 ~ 32,767
整型 int 4 字节 -2^31 ~ 2^31-1
长整型 long 4/8 字节 取决于系统
单精度浮点 float 4 字节 ±3.4e-38 ~ ±3.4e38
双精度浮点 double 8 字节 ±1.7e-308 ~ ±1.7e308
无符号型 unsigned 同对应类型 0 ~ 2^n-1

unsigned 使用场景

unsigned int count = 0;     // 计数器永远不会是负数
unsigned char data[100];    // 传感器数据(0~255)

// 在单片机中很常用
unsigned char uart_buffer[64];  // 串口接收缓冲区

⚠️ unsignedsigned 混用时要小心,可能出意想不到的结果

unsigned int a = 10;
int b = -20;
if (a + b > 0) {      // 结果是... 有符号的 -10 被转成了无符号的大数!
    printf("大于0");    // 会执行这一行,虽然实际上 a+b = -10
}

sizeof 运算符

查看变量或类型占用的字节数:

printf("int: %zu bytes\n", sizeof(int));      // 4
printf("char: %zu bytes\n", sizeof(char));    // 1
printf("double: %zu bytes\n", sizeof(double));// 8

int arr[10];
printf("arr: %zu bytes\n", sizeof(arr));      // 40(10 × 4)