bool类型:
C语言中,没有原生的bool类型,一般的,C中通过 typedef bool int; 的方式来实现bool类型;
然而在C++中,bool却成为了内置的原生数据类型,其值有true/false两个,本质上,bool和int/float/double等原生数据类型并没有什么区别,类似的,我们也可以定义bool类型的变量、数组、指针等;需要注意的一点是:为了兼容C语言,C++中的bool类型的变量仍然使用1个字节的空间来实现存储,也就是说C++中的bool类型的变量仍然可以进行+、-、*、/等算数运算,只不过对于bool类型的变量,最终表现出来的值只有true/false两种,内存中的值为0,则表现为false,否则表现为true,即“非0即为真”。
三目运算符:
C语言中,三目运算符返回的结果为变量的值,因此三目运算表达式是不能出现在赋值符号的左边的(我们没有办法把一个值赋给另外一个字面常量)
C++中,则对三目运算符进行了一定程度上的升级改变,这里分为了2种情况:第一种,若三目运算符的所有可能返回的结果均为变量,那么此时三目运算符便可以出现在赋值符号的左侧(实际上,此时返回的为对应变量的引用);第二种,就是三目运算符所有可能返回的结果中存在常量(即非变量),此时三目运算符的处理和C语言中相同,返回的结果为具体值,此时不能出现在赋值符号的左侧。
正确写法:
int a = 1;
int b = 2;
a > b ? a : b = 5; // 不会报错
引用初体验:
引用&是C++相较C语言新增的一个概念,定义为:已存在的变量的别名。
针对引用,这里有几点需要注意:
1、定义时必须进行初始化;
2、一旦定义,不能进行修改,即引用一旦定义便和对应变量终身绑定,不能随意修改;
3、为某变量定义引用时,引用和该变量的类型必须相同;
举例:int a = 5; int& aa = a; 此时aa就是a的引用,a和aa从此以后就指向了同一片内存空间。