第4课 - 布尔类型和引用
一、C++中的布尔类型
- C++在C语言的基本类型系统之上增加了 bool
- bool是C++中的基本数据类型,可以定义bool类型的全局变量,可以定义bool类型的常量,可以定义bool类型的指针,可以定义bool类型的数组。等等类型。
- C++中的bool可取的值只有true和false;true代表真值,编译器内部用1来表示,false代表非真值,编译器内部用0来表示。
- 理论上bool只占用一个字节。
- C++编译器会将非0值转换为true,0值转换为false,如图1和图2所示:
图1
图2
二、C++中的引用
- 变量是一段实际连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间。
- 引用可以看作一个已定义变量的别名,引用的语法:Type& name = var;普通引用在定义时必须用同类型的变量进行初始化。操作引用就是操作变量。如下图3和图4所示:
图3
图4
三、三目运算符
- C语言中的三目运算符返回的是变量值,不能作为左值使用。
- C++中的三目运算符可直接返回变量本身,既可作为右值使用,又可作为左值使用。但是三目运算符可能返回的值中如果有一个是常量值,则不能作为左值使用。
- 下图5的代码分别用C语言编译器和C++编译器编译将会得到不一样的结果。C语言编译的结果如图6所示,C++编译的结果如图7所示。
- 从(3)可知,当三目运算符可能返回都是变量时,返回的是变量引用;当三目运算符可能返回中有常量时,返回的是值。如图 8所示。
图5
图6
图7
图8