【发布时间】:2017-07-16 04:38:09
【问题描述】:
我有一个condition 和三个变量。
// Assume these variables are all initialized.
int *a;
int *b;
const int c;
const bool condition;
if (condition)
*a = c;
else
*b = c;
我希望if 块通过三元条件运算符位于一行上。
(condition ? *a : *b) = c;
我不明白为什么不允许这样做,因为我没有违反三元条件运算符的规则。 *a 和 *b 返回相同的类型。
【问题讨论】:
-
−1 代码不是真实代码,所谓的事实是不真实,如果代码已更正,它仍然使用 C++ 特定功能,而问题被标记为 多种语言,包括 C++ 和 C。
-
因为这个三元条件运算符的语法在 C 和 C++ 中都是一样的
标签: c++ c syntax ternary-operator lvalue