字符类型
char 存一个字符,但内存里就是一个小整数。'A' 与 65 可以互换理解——这就是 ASCII 直觉。
1. 概念
- 字符常量用单引号:'A' '0' '\n'
- 整数可当作字符打印:%c
- 大小写转换可用加减偏移(或 ctype.h 函数)
2. 完整例子
C
| 1 | #include <stdio.h> |
| 2 | |
| 3 | int main(void) { |
| 4 | char ch = 'A'; |
| 5 | printf("char=%c ascii=%d\n", ch, ch); |
| 6 | ch = (char)(ch + 1); // 变成 'B' |
| 7 | printf("next=%c\n", ch); |
| 8 | return 0; |
| 9 | } |
3. signed/unsigned char
| 写法 | 含义 | 使用建议 |
|---|
| signed char | 带符号小整数 | 范围约 -128~127 |
| unsigned char | 0~255 | 字节、十六进制缓冲更常见 |
| char | 标准不保证有无符号 | 平台相关,跨平台要小心 |
4. 实际例子:十六进制字节打印
C
| 1 | unsigned char buf[3] = {0xDE, 0xAD, 0xBF}; |
| 2 | for (int i = 0; i < 3; i++) { |
| 3 | printf("%02X ", buf[i]); |
| 4 | } |
| 5 | printf("\n"); // 输出类似 DE AD BF |