布尔类型和三目运算符
介绍
C语言中没有具体的bool类型,在C中使用int 型的0和1来代表true和false,但是在C++中对C的布尔类型有了一个增强,增加了一种bool类型,其值为true和false,并且理论上在内存中只占用一个字节,但是C++的编译器在编译到true和false的时候也是用0和1分别代表false和true的
bool类型的计算
bool a = 0;
printf("a = %d\n",a); //0
a++;
printf("a = %d\n",a); //1
a = a-3;
printf("a = %d\n",a); //1
system("pause");
三目运算符:(C++对三面运算符进行了升级)
下面的代码真确吗?
int a = 1;
int b = 2;
(a < b ? a : b) = 3;
printf("a = %d, b = %d\n", a, b);
- C语言中三目运算符返回的是一个变量值,不能作为左值使用
- C++中三目运算符可直接返回变量本身,既可作为左值又可作为右值()
- 注意:三目运算符中所有可能返回的变量中,有一个是常量,就不能作为左值使用
C++中的引用
- 引用可认为是一个已经定定义的变量的一个别名
- 引用的语法:type& name = val;
int a = 1;
int& b = a;
printf("b = %d,a = %d\n",b,a);
printf("&b= %p\n",&b);
printf("&a= %p\n",&a);
变量名的回顾
- 变量是一段实际连续存储空间的别名
- 程序中通过变量来申请并命名存储空间
- 通过变量的名字可以使用内存空间
- C++中的变量可以有别名(就是引用)
小结
- bool类型是C++新增加的基础类型
- bool类型值只能是true和false
- C++中的三目运算符可作为左值使用
- C++中的引用可以看作变量的别名来使用
- 三目运算符的可能返回值都是变量时,返回的是引用