为了账号安全,请及时绑定邮箱和手机立即绑定

C语言中的三元(条件)运算符

/ 猿问

C语言中的三元(条件)运算符

芜湖不芜 2019-11-15 21:16:22

条件运算符有什么需要?从功能上讲,它是多余的,因为它实现了if-else构造。如果条件运算符比等效的if-else赋值更有效,为什么编译器不能更有效地解释if-else?



查看完整描述

3 回答

?
四季花海

三元运算符是语法和可读性的便利,而不是性能捷径。人们因其复杂性各不相同的条件而在优点上有所分歧,但对于较短的条件,使用单行表达式可能会很有用。


而且,由于它是一个表达式,如查理·马丁(Charlie Martin)所写,这意味着它可以出现在C语言语句的右侧。这对于简洁明了。


查看完整回答
反对 回复 2019-11-15
?
PIPIONE

在C语言中,它的真正用途是它是一个表达式而不是一条语句。也就是说,您可以将其放在语句的右侧(RHS)。因此,您可以更简洁地编写某些内容。


查看完整回答
反对 回复 2019-11-15
?
幕布斯7119047

给出的其他一些答案很好。但是令我惊讶的是,没有人提到它可以用来以const一种紧凑的方式帮助增强正确性。


像这样:


const int n = (x != 0) ? 10 : 20;

因此基本上n是,const其初始值取决于条件语句。最简单的选择是n不设置const,这将允许普通用户对其if进行初始化。但是如果你想要做到的话const,那就不可能用普通的方式做到if。您可以做的最好的替代方法是使用如下的辅助函数:


int f(int x) {

    if(x != 0) { return 10; } else { return 20; }

}


const int n = f(x);

但是三元if版本要紧凑得多,而且可读性更高。


查看完整回答
反对 回复 2019-11-15

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信