c++编译器会将非零值转化为true 0值转化为false
c++中的三目运算符的进化:
对比C中的三目运算符:三目运算符返回的是变量值,不能作为左值使用
C++中的三目运算符返回的变量本身,既可以作为左值使用也可以作为右值使用(如果三木运算符可能返回的值中如果有一个是常量,则不能作为左值使用)
int a=1; int b=2; (a<b ? a:b)=3;---------->正确,返回a或b的引用,可作为左值 (a<b ? 1:b)=4;---------->错误,返回1或b的值,不能作为左值