1.布尔类型
1.1 布尔类型
- C++中的布尔类型
- C++在C语言的基本类型系统之上增加了bool
- C++中的bool可取的值只有true和false
- 理论上bool只占用一个字节
- true代表真值,编译器内部用1来表示
- false代表非真值,编译器内部用0来表示
1.2 布尔类型的值
- bool类型只有true(非0)和false(0)两个值
- C++编译器会将非0值转换为true,0值转换为false
#include <stdio.h>
int main(int argc, char *argv[])
{
int a;
bool b = true;
printf("b = %d, sizeof(b) = %d\n", b, sizeof(b));
b = 3;
a = b;
printf("a = %d, b = %d\n", a, b);
b = -5;
a = b;
printf("a = %d, b = %d\n", a, b);
a = 10;
b = a;
printf("a = %d, b = %d\n", a, b);
b = 0;
printf("b = %d\n", b);
printf("Press enter to continue ...");
getchar();
return 0;
}
- 运行结果
1.3 布尔类型
- 布尔类型是C++中的基本数据类型
- 可以定义bool类型的全局变量
- 可以定义bool类型的常量
- 可以定义bool类型的指针
- 可以定义bool类型的数组
2.三目运算符
- C++对三目运算符进行了升级
- 下面的代码正确吗?
int a = 1;
int b = 2;
(a < b ? a : b) = 3;
printf("a = %d,b = %d\n", a, b);
- gcc编译不通过,g++编译通过
- 当改为:(a < b ? a : 2)= 3时,g++也编译不通过