编程m=(a>b)?a:b是什么意思

在C++中m=(a>b)?a:b代表什么?
2025-02-24 10:41:51
推荐回答(4个)
回答1:

这是一个三目运算符
判断()里面的是否成立,成立就返回:前的,不成立就返回:后面的。
相当于
void x(){
if(a>b)return a;
else return b;}
m=x();
当然,括号里面只要是表达式就行,不一定必须和a,b有关。用if语句也可以达到相同的效果,但是显然这样更快捷方便。

回答2:

这个要考虑到优先级的问题,赋值的优先级是除逗号之外最低的,所以这个表达式先执行a是否大于b,然后若表达式为真,就把a赋值给m,否则将b赋值给m。

回答3:

如果a>b那么m赋值为a 反之赋值为b

回答4:

C++语言中提供了一个三元运算符“? :”,它的一般形式如下:
表达式1? 表达式2 : 表达式3
其中,表达式1是一个关系或逻辑表达式,表达式2和表达式3均是任何合法的C++表达式。
执行过程是先对表达式1求值,其值为非0时,则整个表达式的值为表达式2的值;否则,整个表达式的值为表达式3的值。
例如,语句
max = a>b ? a : b ;
的功能是取a和b中的大值,并把这个值赋给变量max。
条件运算符按右结合方式求值。例如,求a, b, c之中的最大值,用条件表达式可以表示为:
a>b ? a>c ? a : c : b>c ? b : c
相当于
a>b ? (a>c ? a : c) : (b>c ? b : c)