1. 布尔变量 bool #
bool 变量的取值范围:
true
false
其中,它们的值也可以使用整数来表示。
true 可以用 1 表示
false 可以用 0 表示
请看以下代码:
int main() { bool var(true); // 声明一个 bool 变量,并初始化 bool is_ok; // 声明一个 bool 变量 is_ok = false; // 赋值 is_ok = 0; // 赋值 is_ok = true; // 赋值 is_ok = 1; // 赋值 is_ok = 20; // 请运行,然后在调试中查看结果 is_ok = -15; // 请运行,然后在调试中查看结果 return 0; }
在这样的例程中,很难看出来 bool 变量存在的意义。
而一个 bool 变量,只有在“比较关系”中才可以真正看到它的价值。
1.1 bool 变量的意义 #
所以,下面,我们先来写一个数学上的“比较关系式”。
假设有两个数,20 和 25,请问数学中是怎么描述它们的大小关系?
20 < 25
下面我们写一段代码,来表示这样的关系。
int main() { bool is_lower; // 声明一个 bool 变量 is_lower = 20 < 25; // 判断 20 是否小于 25 // 请问,is_lower 的值是 true 还是 false? is_lower = (20 < 25); // 可以使用括号 return 0; }
1.2 bool 变量的输出 #
下面我们来验证一下。
我们依然可以使用 cout 来输出 bool 变量的值。
请运行下面的代码:
#include <iostream> using namespace std; int main() { bool is_lower; // 声明一个 bool 变量 is_lower = 20 < 25; // 判断 20 是否小于 25 // 输出 bool 变量 cout << "is_lower = " << is_lower << endl; return 0; }
注意:cout 是将 bool 变量对应的整数值,作为结果输出的。
1.3 bool 变量的输入 #
我们依然可以使用 cin 来输入一个 bool 值。
请运行下面的代码:
#include <iostream> using namespace std; int main() { bool is_lower; cout << "请输入 0 或者 1:" << endl; cin >> is_lower; // 输入 bool 变量 cout << "is_lower = " << is_lower << endl; // 输出 bool 变量 return 0; }
注意:输入 bool 值时,需要使用对应的整数值,作为输入。
2. 字符类型 char #
2.1 char 的数值 #
类型名称 | char | unsigned char |
所占字节数 | 1 | 1 |
表示范围 | -128~127 | 0~255 |
- char 和 unsigned char 的大小都是 1 字节(Byte)
- unsigned char 本身为一个整型,表示范围为 0 ~ 255
- char 本身为一个整型,表示范围为 -128~127
下面,我们来使用一下 char,请看代码
#include <iostream> using namespace std; int main() { // 定义、初始化、赋值 char ch1; ch1 = 5; char ch2(6); char ch3 = 8; return 0; }
这些是常规用法,现在来看一下
#include <iostream> using namespace std; int main() { // 定义、初始化、赋值 char ch1; ch1 = 'A'; char ch2('b'); char ch3 = 'C'; return 0; }
C++ 中,char 除了可以表示一个数值以外,还被用来表示“字符”。
名词解释:“字符”
字符,其实就是一个英文字母、数字、特殊符号。
这里有两个关键词:
- 一个
- 英文字母、数字、特殊符号
汇总如下:
2.2 ASCII #

一般,我们需要重点关注的是“ASCII 打印字符”。
请注意:为了区别,C++ 使用单引号(’)来表示字符常量。
请看代码:
#include <iostream> using namespace std; int main() { char ch1; // 赋值为字符 'A' ch1 = 'A'; char ch2; ch2 = 65; // 赋值为数字 65 cout << "ch1 = " << ch1 << endl; // 输出字符变量 cout << "ch2 = " << ch2 << endl; // 输出字符变量 return 0; }
是不是发现,输出为
ch1 = A ch2 = A
对于字符变量的赋值,请注意:
- 字符变量,使用字符赋值,字符会转化成对应的数值,存储到变量中。
- 字符变量,使用数值赋值,数值将直接,存储到变量中。
- 字符变量,使用数值赋值,数值范围不可超过 [0, 127]。
对于字符变量的输出,请注意:
- 字符变量,输出时,存储的数值,将转化成 ASCII 中对应的字符,然后输出到屏幕。
这就体现了 C++ 中, char 类型的特殊性。
这里请注意,char 和 unsigned char 都可以使用,但是必须注意取值范围。
- [0, 127]
超出范围的赋值,不会报错,但是它的值就不确定了。请特别注意。
#include <iostream> using namespace std; int main() { char ch; // 赋值为字符 'A' ch = 'A'; unsigned char uc; // 可以使用 unsigned char uc = 65; // 赋值为数字 65 cout << "ch = " << ch << endl; // 输出字符变量 cout << "uc = " << uc << endl; // 输出字符变量 return 0; }
3. 关系运算符 #
在数学中,我们学习过数值大小关系的表达。
在 C++ 中,大多数的数学关系,都是相同的。不过,由于一些数学上的符号,
在键盘上不能直接打出来。所以 C++ 的“关系运算符”上,和数学略有不同。
下表中,展示了这些不同。
关系运算符的示例:
a > b; // 大于 a >= b; // 大于等于 a < b; // 小于 a <= b; // 小于等于 a == b; // 等于 a != b; // 不等于
4. 关系表达式 #
C++ 中,将含有“关系运算符”的表达式,称为“关系表达式”。
上面的示例代码中,全部都属于“关系表达式”。
我们在之前的例程中演示了使用“关系表达式”给 bool 变量赋值。
下面,总结一下“关系表达式”的常用情况。
int main() { 5 > 6; // 关系表达式 bool b_0 = 5 > 6; // b_0 的值为 false bool b_1 = 5 < 6; // b_1 的值为 true bool b_2 = (5 > 6); // b_2 的值为 false bool b_3 = 5 > (6-5); // b_3 的值为 true int a = 10; bool b_4 = 5 > a; // b_4 的值为 false int a = 15; bool b_5 = a != a; // b_5 的值为 true bool b_6 = a!=7; // b_6 的值为 true,空格可以省略 bool result; result = 5 > = 6; // 【错误写法】>= 中间不能有空格 result = 5 < = 6; // 【错误写法】<= 中间不能有空格 result = 5 = = 6; // 【错误写法】== 中间不能有空格 result = 5 ! = 6; // 【错误写法】!= 中间不能有空格 return 0; }
表达式中,数值/变量 和 符号 之间的空格可以省略
请口头判断下面表达式的值。
10 > 8; 10 >= 8; 1 < 8; 1 <= 8; 1 == 8; 1 != 8; int a(50); a != 50; a == 50; a >= 50; a <= 50;