在C语言中 z=x>y? x: y; 这个表达式是什么意思啊,求解。

如题所述

?:称为条件运算符。?:就是表示?前的表达式的值是否为真,是的话取冒号前的值,否则取冒号后的值。

相当于:

if (x>y)

{z=x;}

else

{z=y;}


扩展资料

C语言中条件表达式的通用形式如下:

exp0=exp1?exp2:exp3

如果exp1为真(非0),那么把exp2的值赋给exp0;如果exp1为假(0),那么把exp3的值赋给exp0。

2.verilog语法中也有类似C语言中的条件表达式

如下:

inout sda;

assign sda=(flag==1)?data_buf:1'bz;

当flag==1时,sda的值等于发送的数据的data_buf(sda相当于output类型),

当flag==0时,sda的值变成高阻态(sda相当于input类型)。

参考资料来源:

百度百科——条件运算符

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-18
这是”问号表达式“,问号表达式如下:
exp1 ? exp2 :exp3

如果表达式exp1为真,exp2就是整个表达式的值。如果exp1为假,exp3就是整个表达式的值。
所以z=x>y?x:y;
就是求 x跟y的最大值,并将最大值赋值给z。
第2个回答  2015-01-18
三目运算,就是说当x的值大于y的值的时候则z=x,否则z=y本回答被提问者采纳
第3个回答  2015-01-18
在C语言中 z=x>y? x: y; 这个表达式的意思如下:
如果x大于y,把x的值赋给z,否则把y的值赋给z
相当于:

if(x>y)
z=x;
else
x=y;本回答被网友采纳