CppStudio logo CppStudio
首页 / 教程 / 第10课

C++ 程序可视化教程 · 第10课 · 第二章 变量

char 为什么是数字?字符与布尔值讲清楚

char 表面存字符,实际存的是字符的编号:'A' 就是 65。所以 char 能做算术, 'A' + 1 得到 'B'。bool 只有 true 和 false 两个值,输出时显示为 1 和 0。

char:一个字符,一个数字

char 类型存单个字符。计算机不直接认识字母,存下的是字符的编号——这套编号叫 ASCII:

char c = 'A';
cout << c << endl;        // A(按字符显示)
cout << (int)c << endl;   // 65(按编号显示)
char d = c + 1;           // 66,即 'B'
cout << d << endl;        // B

(int)c 是把 char 临时转成 int 来看它的编号。既然 char 本质是数字,c + 1 就是下一个编号、下一个字符。判断大写转小写(c + 32)、数字字符转数字(c - '0')都建立在这个事实上。

bool:只有真与假

bool 类型只有两个值:true(真)和 false(假):

bool ok = true;
cout << ok << endl;   // 输出 1

输出时 true 显示为 1,false 显示为 0。bool 是程序的"判断结果载体"——上一课的 c == 0.3 算出来的就是一个 bool。之后的条件、循环全靠它驱动。

可视化观察

在 CppStudio 中打开本课示例,点击播放:

  1. 执行 char c = 'A'; 后,监视区出现 c——对照接下来的输出理解"存的是编号";
  2. 两条 cout 先后输出 A65,同一个变量的两种面貌;
  3. 执行 c + 1 得到 d,输出 B——字符算术的完整证据链;
  4. bool 变量 ok 输出 1,记住这个显示规则,后面判断题都会遇到。

常见错误

下一课:一次定义多个变量——连续定义的写法与初始化细节。

▶ 运行本课示例 弹窗里直接跑,流程图同步展开;也可新窗口打开

常见问题

char 是什么类型?

字符类型,存一个字符。本质上存的是字符的编号:'A' 存的是 65,'a' 是 97。这套编号规则叫 ASCII,所以 char 可以参与加减运算。

'A' 和 "A" 一样吗?

不一样。'A' 是 char,本质是数字 65;"A" 是字符串,是文本类型。单引号与双引号不能混用(回顾第 6 课字面量)。

bool 输出的为什么是 1 和 0?

bool 存 true 和 false,输出时 true 显示为 1,false 显示为 0。条件判断、循环控制都依赖 bool,后续章节会大量使用。

ASCII 表需要背吗?

不需要。记住三个锚点就够用:'0' 是 48,'A' 是 65,'a' 是 97,其余字符的编号可以由此推算。

陕ICP备2026020640号-1