C 和 C 条件运算符 (?) 之间的差异
条件运算符 (?:) 提供了一种简洁的方法来计算基于以下内容的表达式:状况。然而,它在 C 和 C 之间的功能上表现出细微的差异。
左值赋值:
在 C 中,条件运算符可以返回左值,允许这样的表达式:
(true ? a : b) = 1;
这将根据 true 的真实性将值 1 分配给 a 或 b。在 C 中,这是不允许的,必须使用 if/else 语句或直接使用引用:
*(true ? &a : &b) = 1;
运算符优先级:
在 C 中, ?: 和 = 运算符具有相同的优先级并从右到左分组。这意味着以下内容是有效的:
(true ? a = 1 : b = 2);
但是,在 C 中,如果最后一个表达式没有括号,这将引发错误:
(true ? a = 1 : (b = 2));
因此,当使用条件运算符时在混合 C 和 C 环境中,了解这些细微差别以避免意外行为至关重要。
以上是C 和 C 之间条件运算符行为的主要区别是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!