B26
字符型:char、ASCII 与单双引号
引入
章前总览 除了整数和小数,程序还要处理字母、符号。char 存一个字符;内存里其实存的是它的 ASCII 编号,因此字符可以和整数互相运算。
逻辑链条:
- C1:char 与 ASCII(了解即可)
- C2:字符常量用单引号
- C3:字符串用双引号,不能赋给 char
1 C1. char 存的是编号
char 变量占 1 个字节。存 'A' 时,不是把字形画进内存,而是存 ASCII 值 65。
和整数“差不多”
- 字符与整数存储方式类似,可以互相赋值、一起运算。
int a = 'A';后,a 的值是 65。- 一级只需了解 ASCII;不必背整张表。记住:大写比对应小写“小” 32。
定义与赋值
char c = 'E';
int a = 'A'; // a = 65
2 C2. 字符常量与转义字符
用英文单引号括住一个字符,就是字符常量:'a'、'#'、'%'、'D'。
转义字符
- 以反斜杠
\开头的特殊字符叫转义字符。 - 最常见:
'\n'表示换行(和endl类似用途)。
3 C3. 字符 ≠ 字符串
英文双引号括起来的是字符串常量(可以有 0、1 或多个字符)。
补充说明
不推荐
char c1 = "Hello"; // ×
char c2 = "A"; // × 哪怕只有一个字符也不行
问题:双引号是字符串,不能赋给 char。
推荐写法
char c = 'A'; // √ 一个字符
cout << "Hello"; // √ 字符串用双引号输出
口诀:一个字符单引号;一串文字双引号。
小结
字符题三件套:
char c; cin >> c;
'A' 是字符,ASCII=65
"A" 是字符串,不能赋给 char
c-32 可把小写变大写(后文练习)
✓
里程碑达成:
下一节用圆周率、折扣和字符菱形做三道案例。