【发布时间】:2012-03-26 00:57:50
【问题描述】:
通过尝试,我了解到有必要在 cout 语句中的条件运算符周围加上括号。这里是一个小例子:
#include <iostream>
int main() {
int a = 5;
float b = (a!=0) ? 42.0f : -42.0f;
// works fine
std::cout << b << std::endl;
// works also fine
std::cout << ( (a != 0) ? 42.0f : -42.0f ) << std::endl;
// does not work fine
std::cout << (a != 0) ? 42.0f : -42.0f;
return 0;
}
输出是:
42
42
1
为什么需要这些括号?条件运算符的结果类型在这两种情况下都是已知的,不是吗?
【问题讨论】: