#include <stdio.h>
void main( )
{ int k=4,a=3,b=2,c=1;
printf("%d\n",k<a?k:c<b?c:a);
}
3 回答
习惯受伤
TA贡献885条经验 获得超1144个赞
式子等同于下面这样:
int k=4,a=3,b=2,c=1;
k<a?k:(c<b?c:a)
这是两个嵌套的三目运算符,先计算第一个:
1,先计算:k<a结果为false
2,取三目运算符冒号之后的结果,冒号之后也是一个三目运算符
3,c<b结果为true,取第二个三目运算符中问号后的c,所以结果应该是:1
慕数据5337628
TA贡献1条经验 获得超0个赞
表达式等价于:
if(k<a){ return k; } else { if(c<b){ return c; } else { return a; } }
因此,输出结果应该是1
望远
TA贡献1017条经验 获得超1032个赞
int k=4,a=3,b=2,c=1;
k<a?k:c<b?c:a -->k<a?k:(c<b?c:a)
先计算外层的三目运算即判断k<a是否成立?:false
即表达式的值取内层c<b?c:a表达式的值
判断c<b是否成立?true,发挥c的值
取值是后方的内层三目运算的返回值即1
输出结果1
- 3 回答
- 0 关注
- 1850 浏览
添加回答
举报
0/150
提交
取消