为什么c语言中条件表达式要用==而不是!

如题所述

原因如下

exp 是一个变量。

这个条件表达式的意思是,如果(exp)为真,则执行 a++,否则执行b--。

而只要变量exp的值不为0(也就是false),(exp)都为真(true)。比如exp==2或者exp==-1,(exp)都为真。

所以(exp)等价于(exp!=0),也就是使用 (exp!=0)?a++:b--  程序也能达到同样的效果。所以选b 。

扩展资料:

条件表达式其一般形式如下:

x=<表达式1>?<表达式2>:<表达式3>

其意义是:先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x。若为0(假),则求解表达式3,将表达式3的值赋给x。 口诀:前真后假。

例如:

min=(a<b)?a:b;

效果是将a、b中较小的那个赋给min。 [1] 

公式注意:

若有多个条件表达式像这样连在一起:x=<表达式1>?<表达式2>:<表达式3>?<表达式4>:<表达式5>···执行顺序是从右到左依次判断再求出最后的x,即所谓的右结合性。

注意:此表达式后边无需加 “;”。

例如: a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为:1。

参考资料来源:百度百科-条件表达式

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网