1.布尔类型
c++在c语言的基础类型系统上增加了bool
bool类型取值只有true(非0)和false(0)(true代表真,编译器用1表示;false代表假,编译器用0表示)
理论上bool只占一个字节
c++编译器会把非0值转化为true,把0值转化为false
2.三目运算符
c语言中三目运算符返回的是变量值;不能做为左值使用
c++中的三目运算符可直接返回变量本身;即可做右值使用,又可作为左值使用(只有三目运算符中的成员都是变量时才可以实现)
c++中当三目运算符的可能返回变量时,返回的是变量的引用;当三目运算符的可能返回常量时,返回的是值。
注意:三目运算符可返回的值中如果有一个是常量值,则不能作为左值使用
以下情况是成员都是变量的情况下编译通过
以下情况是其中一个成员是常量时编译不能通过
3.c++中的引用
引用:可以看作一个已定义的变量的别名(给一个已经定义好的变量在取一个名字)
语法:Type& name = val;
int a = 4;
int& b = a; //b为a的别名(引用的b别名的类型和a的别名需一致)
b = 5;
注意:普通引用在定义时必须用同类型的变量进行初始化
eg:
如果引用一个常量会报错,因为和概念冲突(引用一个变量)