#include "stdafx.h"
#include "stdlib.h"
int main()
{
bool b = 0;
printf("b = %d\n", b);//输出 0
b++;//bool类型参加数学运算时,C++会将其作为1个字节的整型数处理,但是会将最终的结果转换:非0就为1, 这里被自加1,
printf("b = %d\n", b);//因为被加了1,非0值,作为bool变量就是输出1
b = b - 3;
printf("b = %d\n", b);//因为被加减了3,非0值,作为bool变量就是输出1
int a1 = 1;
int a2 = 2;
(a1 < a2 ? a1 : a2) = 3;//因为C++对三目运算符进行了升级,所以,因为这里的a1,a2是变量,该三目运算符返回的就是一个变量,所以可以被赋值;
//(a1 < a2 ? 1 :a2) = 4;//这样就是错误的,C++规定当三目运算符可能返回有常量时,返回的是值,而不是变量,这里因为返回1或者a2,不能作为左值;
//C语言中的三目运算符返回的是变量值,不能被赋值;而C++语言返回的是变量本身,既可以作为左值被赋值,也可以作为右值赋值给其他变量使用;
printf("a1 = %d,a2 = %d", a1, a2);
int a3 = 4;
int &a4 = a3;//引用类型,必须在定义时就初始化它。
system("pause");
return 0;//
}