请问一下这道题是怎么分析出正确选项的?

请教一下这道题的分析过程,谢谢。
初学者不知道怎么做,谢谢大家了!

img

首先你要明白(M)? (a++):(a--)等价于

if(M){
a++;
}
else{
a--;
}

这里的M就是我们要判断的条件,我们通过判断这个条件是0还是非0 来判断真假,0为假,非0为假,如果是字符则会先将他转换为ASCII值再判断。

就是判断M是否为真,在这里M不为0就是真,至于M是1还是2这是不确定的,也无所谓

C语言中 非0 值与逻辑真 等价,c选项说 M 不等于0, 即非0值,所以选 c