……?……:……
式A?B:C值为:若A为真,则B;若A为假,则C。
但有一点是值得注意的,那就是问号表达式的结合性,问号表达式是从右往左的运算方向
尤其是当问号表达式嵌套使用时得注意这个问题,例如
代码:
int a=1,b=2,c=3,d=4;
printf("%d",a
正确结果是:1
因为先执行的是c
因此得到的结果就是1(可以在编译器上实验一下)
题目的意思是如果M为真,即M!=0,就执行a++,如果M为假,即M==0,就执行a--。所以这个M就相当于判断M是否等于0.
你的意思就是如果M为真,也就是说M!=0,就执行a++,如果M为假,也就是说M==0,就执行a--。所以这个M就相当于判断M是否等于0;如果还看不懂的话,你可以去看下C语言书上的条件表达式的那章,很简单的,好好加油,祝你成功!~
其中:a
“
是赋值表达式,那么因为在C语言中,条件表达式的优先级排名13
高于赋值表达式的优先级14,因此这个语句的意思就是:当a小于b时,c=a;而当a大于或者等于b时,c=b;再翻译过来就是说这个语句执行完得到的效果就是c的值是取得a,b俩者当中较小的那个
问号表达式是这个样子的 语句a?语句b:语句c
如果满足语句a,就执行语句b;
否则执行语句c.
标签:问号,表达式,求解