相关疑难解决方法(0)

要三元还是不三元?

我个人是三元运算符的拥护者:()?:; 我确实意识到它有它的位置,但我遇到了许多完全反对使用它的程序员,而且有些人经常使用它.

你有什么感受?你看到了什么有趣的代码?

multilingual ternary-operator conditional-operator

180
推荐指数
17
解决办法
4万
查看次数

为什么条件运算符是正确关联的?

我可以理解为什么赋值运算符是正确关联的.什么时候才有意义

x = 4 + 3
Run Code Online (Sandbox Code Playgroud)

评估,在分配给x之前添加4和3.

我不清楚如何?:从正确的联想中获益.只有两个?:人像这样使用才有意义

z = (a == b ? a : b ? c : d);
Run Code Online (Sandbox Code Playgroud)

然后它被评估如下:

z = (a == b ? a : (b ? c : d));
Run Code Online (Sandbox Code Playgroud)

从左到右进行评估肯定会更有意义吗?

c conditional-operator

35
推荐指数
3
解决办法
1万
查看次数

另一个条件运算符嵌套问题

根据C优先级表,三元条件运算符具有从右到左的关联性.

那么,它是否可以直接转换为等效的if-else阶梯?

例如,可以:

x?y?z:u:v;
Run Code Online (Sandbox Code Playgroud)

被解释为:

if(x)
{
   if(y)
   { z; }
   else
   { u; }
}
else
{ v; }
Run Code Online (Sandbox Code Playgroud)

通过匹配else(:)与最近的未配对if(?)?或者从右到左的关联性是否意味着其他一些安排?

c conditional-operator

6
推荐指数
2
解决办法
8765
查看次数