第六章——字符型数据 第一节——字符型常量的定义

第六章——字符型数据 第一节——字符型常量的定义

亓翎_Re-Tikara Lv5

一、基本概念:字符型常量的定义

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'(合法,十六进制写法) 使用合法转义字符
混淆大小写 Aa 注意大小写区分

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 使用 getcharputchar

  • 输入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 进行许可。