第一题(M)?a++:a-- 这是一个三目表达式
M可以是一个公式,也可以是一个变量,也可以是一个常数。,如果是常数,说明表达式结果为正,那这个表达式的的结果就是a++.
?号前面表达式结果,影响整个语句的结果,如果?号前面的表达式结果为真,整个表达式的值,就等于:号前面的表达式a++的值,如果为假,整个表达式的值就是:号后面的语句a--。
简单的说,就是M如果成立,就执行a++,否则就执行a--
/*这个。。有什么好解释的。。
C++里布尔表达式就是这样的。
比如说:*/
(int M)?(a++):(a--)/*里的*/(int M)?/*就等价于*/(M!=0)?
//也可以适用于其它基本类型
问的是表达式M等价于什么。那么三元表达式是这么理解的,第一个表达式是一个if判断,那么c语言没有bool值,则非0则为真。
和if(k) 类似。k可以有很多非0(1,2,3,4)值,简写k!=0