c语言中?是什么意思

printf("%d\n",(w<x)?w:z<y?z:x));

(w<x)?w:z<y?z:x基本都不懂...
还有此处右括号是不是打印错误.......

第1个回答  2013-06-18
?是一个三目运算符;又右括号应该是少了一个左括号吧;括号要配对使用。
printf("%d\n",(w<x)?w:(z<y?z:x));意思是:如果(w<x)为true就执行w,为false执行(z<y?z:x)
第2个回答  2013-06-18
?: 操作符
test ? statement1 : statement2

if...else语句的简化形式。
当test的值为真时表达式取statement1的值 ;
否则取statement2的值。
表达式可嵌套。

(w<x)?w:z<y?z:x
如果w<x,表达式取w的值
否则取表达式z<y?z:x的值
表达式z<y?z:x的值为:
如果z<y,表达式取z的值
否则表达式取x的值

换成if ... else 语句可能更好理解:
int temp;
if(w<x)
temp=w;
else
{
if(z<y)
temp=z;
else
temp=x;
}
第3个回答  2023-04-26
?在语言中表示疑问,那么疑问来自于判断。:在语言中表示判断的结果选择。所以编程逻辑就是先进行判断,然后再进行选择。例如,当a>b时,x=1否则x=0,可以写成x=a>b?1:0。C语言在一个表达式中,如果遇到几个,要考虑和结合方向。比如,表达式 x pri1 y pri2 z,可能出现两种可能性
(x pri1 y )pri2 z
x pri1 (y pri2 z)如果运算符 pri1 的优先级比pri2 高,那么就是上面的第一种情况。如果运算符 pri1 的优先级比pri2 低,那么就是上面的第二种情况。
如果优先级相同,那就要考虑结合方向。
结合方向是 「左到右」或者「右到左」。
例如,「= 」 的结合方向是 「右到左」。
第4个回答  2019-11-08
VC++6.0编译器下编写C程序语句:
//程序语句--->这个在C语言里面表示的是行内注释不需要编译运行的语句;
/*程序语句*/--->这个表示可以多行注释不需要编译运行的语句;
希望帮助到你
第5个回答  2013-06-18
三目运算符,w<x吗?如果小于运算结果就是w,如果不小于那么运算结果就是冒号后面的,然后判断z是否小于y,如果小于那么运算结果就是z,如果不小于运算结果就是x。

相关了解……

你可能感兴趣的内容

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