一、C++中布尔类型
1. C++在C语言的基本类型系统之上增加了bool
2. C++中的bool可取的值只有true和false
3.理论上bool只占用一个字节
注意:
true代表真值,编译器内部用1来表示
false代表非真值,编译器内部用0来表示
4.bool类型只有true(非0)和false(0)两个值
5.C++编译器会将非0值转换为true,0值转换为false
#include<stdio.h> int main() { bool b=false; //false对应0 int a=b; printf(" sizeof(b)= %d \n",sizeof(b)); //1 printf("%b=%d , a=%d\n",b,a);
#include<stdio.h> int main() { int a=1; int b=2; (a<b ? a:b)=3; printf("a = %d , b = %d\n",a,b); return 0; }
//0 0b = 3;a=b;printf("%b=%d , a=%d\n",b,a); // 1 1b=-5;a=b;printf("%b=%d , a=%d\n",b,a); // 1 1a=10;b=a;printf("%b=%d , a=%d\n",b,a); // 1 10a=0;b=a;printf("%b=%d , a=%d\n",b,a); // 0 0return 0;}二、布尔类型是C++中的基本数据类型
1.可以定义bool类型的全局变量2.可以定义bool类型的常量
3.可以定义bool类型的指针4.可以定义bool类型的数组
三、C++对三目运算符的升级
1.C语言中的三目运算符返回的是变量值1.1 不能作为左值使用2.C++中的三目运算符可直接返回变量本身2.1 既可以作为左值使用,又可以作为右值使用注意:三目运算符可能返回的值中如果有一个常量值则不能作为左值使用#include<stdio.h> int main() { int a=1; int b=2; (a<b ? a:b)=3; printf("a = %d , b = %d\n",a,b); return 0; }
三、C++中的引用
1.在C++中新增加了引用的概念1.1 引用可以看做一个已定义变量的别名1.2 引用的语法: Type& name =var注意:普通引用在定义时必须用同类型的变量进行初始化int a = 4; int& b = a; //b为a的别名 b = 5; //操作b就是操作a
#include<stdio.h> int main() { int a=4; int& b=a; b=5; printf("a = %d\n",a); printf("b = %d\n",b); printf("a = %p\n",&a); printf("b = %p\n",&b); return 0; }
三、C++对三目运算符做了什么?
1. 当三目运算符的可能返回值为变量时,返回的是变量的引用2. 当三目运算符的可能返回中 有常量时,返回的是值int a = 1; int b = 2; (a<b ? a:b )=4 //正确,返回a或b的引用,可作为左值 (a<b ? 1:b )=3 //错误,返回1或b的值, 不可能为左值
四、小结
1. bool类型是C++新增加的基础类型2. bool类型的值只能是true和false3. C++中的引用可以看作变量的别名来使用4. 三目运算符的可能返回都是变量时,返回是引用