设 a=1, b=2, c=3, d=4,则表达式:a>b?a:c<d?a:d 结果为

条件运算符(三元运算符)

条件 ? 表达式1 : 表达式2

判断条件,如果条件正确(1),跳转到表达式1,否则(0),跳转到表达式二

分析

这种题目或者问题并不难,需要的只是逐层剥开

以上题为例:   

  1. 判断 a>b,这时的表达式1为 a,表达式2为 c<d?a:d,显然 a>b 不对,跳转到表达式2
  2. 来看c<d?a:d,条件为 c<d,表达式1为 a,表达式2为 d,显然 c<d,所以执行表达式1,此时式子结束,返回a,即1

结果

来运行一下

int a=1, b=2, c=3, d=4;
printf("%d\n", a>b?a:c<d?a:d);

输出1

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐