C++ 无条件三元算子

C++ 无条件三元算子,c++,C++,我发现一段代码显示以下内容: int A = 4; int Z; Z = (A ? 55 : 3); 为什么Z的结果是55?对于条件语句(if,while,…)和三元运算中的表达式必须“看起来像”一个条件,因此它们应该包含一个关系/相等/逻辑运算符这一事实,您似乎有一个常见的误解 不是这样的。常用的关系/相等/。。。运算符与条件语句/表达式没有任何特定关系;他们可以自己生活 bool foo = 5 > 4; std::cout<<foo<<"\n"; // p

我发现一段代码显示以下内容:

int A = 4;
int Z;

Z = (A ? 55 : 3);

为什么Z的结果是55?

对于条件语句(
if
while
,…)和三元运算中的表达式必须“看起来像”一个条件,因此它们应该包含一个关系/相等/逻辑运算符这一事实,您似乎有一个常见的误解

不是这样的。常用的关系/相等/。。。运算符与条件语句/表达式没有任何特定关系;他们可以自己生活

bool foo = 5 > 4;
std::cout<<foo<<"\n"; // prints 1
boolfoo=5>4;

std::cout
A
被隐式转换为
bool
,任何不同于
0
的数值都被评估为
true
。可能的应用程序:
if(5) std::cout << "hello\n"; // prints hello