【发布时间】:2013-05-13 12:02:02
【问题描述】:
void calculate(){
int x=3, y=3, z=1;
printf("%d\n",z+=x<y ? 10:20 );
}
上面的代码打印出 21。
我明白,首先,程序将计算 x 0,然后 z = z + 0 = 1,程序不应该打印 10,因为 1 是另一种形式的真。
程序显然选择了第二个选项,并且还将其增加到 21,有人可以解释一下吗?
【问题讨论】:
标签: c ternary-operator