第六章——字符型数据 第一节——字符型常量的定义
一、基本概念:字符型常量的定义
1.1 什么是字符型常量?
字符型常量是用单引号括起来的单个字符,代表 ASCII 字符集中的一个符号。例如:
1 | 'A' '9' ' ' '!' // 合法字符常量 |
核心规则:
- 单引号内只能包含一个字符(如
'abc'非法)。 - 单引号与双引号意义不同(
"a"是字符串,非字符常量)。 - 字符常量在内存中占 1 字节,存储其 ASCII 码值。
1.2 真题实战:字符常量的运算
字符常量本质是整数(ASCII 码),可参与运算:
例题:
char ch = 'B';
printf("%c %d", ch, ch);
输出:B 66(字符 B 的 ASCII 码为 66)
二、语法与陷阱:字符型常量的易错点
2.1 常见错误汇总
| 错误类型 | 错误示例 | 修复方法 |
|---|---|---|
| 多字符常量 | 'abc' |
拆分为多个字符常量 |
| 混淆单双引号 | "A" |
改为 'A' |
| 忽略空格与转义 | ' '(合法) |
空格符是有效常量 |
| 超出 ASCII 范围 | '\x13'(合法,十六进制写法) |
使用合法转义字符 |
| 混淆大小写 | A和a |
注意大小写区分 |
2.2 转义字符的特殊规则
以反斜杠 \ 开头的字符序列为转义字符:
- 合法示例:
'\n'(换行)、'\101'(八进制 ASCII 码对应字符)。 - 非法示例:
'\081'(八进制含非法数字 8)。
三、进阶应用:字符与字符串的对比
3.1 字符常量 vs 字符串常量
| 特性 | 字符常量 | 字符串常量 |
|---|---|---|
| 引号类型 | 单引号 ' ' |
双引号 " " |
| 内容容量 | 仅限单字符 | 可含多字符及 \0 结束符 |
| 内存占用 | 1 字节 | 字符数 + 1 字节(\0) |
示例对比:
sizeof('A') // 1 字节
sizeof("A") // 2 字节('A' + '\0')
3.2 真题实战:字符串长度计算
char s[10] = {'A', '\0', 'B', 'C'};
printf("%d", strlen(s)); // 输出 1(`\0` 终止)
四、调试与实践:字符处理技巧
4.1 使用 getchar 与 putchar
- 输入:
ch = getchar();(读取单个字符,含空格)。 - 输出:
putchar(ch);(直接输出字符)。
案例:过滤输入中的 '0'
char ch;
while ((ch = getchar()) == '0')
printf("#");
结果:输入 000 会输出 ###。
4.2 字符数组与字符串函数
- 拷贝:
strcpy(dest, src);(需确保dest足够大)。 - 拼接:
strcat(dest, src);(自动覆盖\0并添加新结束符)。
五、总结:选择的艺术
- 字符常量:处理单字符时使用,注重 ASCII 码运算与转义逻辑。
- 字符串常量:需用字符数组存储,依赖
\0结束符与库函数操作。
🎯 记忆口诀:
“单引号字符,双引号字符串;转义字符看反斜,字符串尾藏 \0!”
- 标题: 第六章——字符型数据 第一节——字符型常量的定义
- 作者: 亓翎_Re-Tikara
- 创建于 : 2026-02-07 02:21:28
- 更新于 : 2026-02-10 02:48:46
- 链接: https://re-tikara.fun/Blog/posts/601c8c23/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。