运行结果为6
z+=x>y?++x;++y;
先处理表达式:x>y?++x;++y
由于x=1,y=2,所以x>y为假,表达式的值等于++y,
由于y=2,所以++y等于3,所以表达式:x>y?++x;++y的值等于3
z+=x>y?++x;++y;转化为z+=3;,也就是z=z+3,
由于z=3,所以z=z+3=3+3=6
1 程序先改正:
void main() //本行少()
{
int x=1,y=2,z=3;
z+=x>y?++x:++y; //++x后面应该是冒号,不是分号。
printf("%d",z);
}
2 运行结果:
6
答案:6
int x=1,y=2,z=3;
z+=x>y?++x:++y; //中间冒号
//先比较x>y? 为真,返回++x,否则返回++y。
z += ++y;
++y先执行y+1,y = 3
z +=3 ====》 z = z + 3 = 6
6