#include<stdio.h> void main() { int x,y,z,t; x=y=z=1; t=++x||++y&&++z; p
#include<stdio.h>voidmain(){intx,y,z,t;x=y=z=1;t=++x||++y&&++z;printf("x=%dy=%dz=%dt=...
#include<stdio.h>
void main()
{
int x,y,z,t;
x=y=z=1;
t=++x||++y&&++z;
printf("x=%dy=%dz=%dt=%d\n",x,y,z,t);
}
求解为啥结果是x=2y=1z=1t=1
而且将第6行修改为
t=--x||--y&&--z;
时输出的是x=0y=0z=1t=0 展开
void main()
{
int x,y,z,t;
x=y=z=1;
t=++x||++y&&++z;
printf("x=%dy=%dz=%dt=%d\n",x,y,z,t);
}
求解为啥结果是x=2y=1z=1t=1
而且将第6行修改为
t=--x||--y&&--z;
时输出的是x=0y=0z=1t=0 展开
1个回答
展开全部
当判断++x时,x值为2,已经为真,所以||后面的表达式就不需再判断,整个表达式的值为1(t=1)
结果是x=2y=1z=1t=1
将第6行修改为
t=--x||--y&&--z;
当判断++x时,x值为0,即假,所以||后面的表达式需继续判断。--y的值为0因为后面是&&,所以后半部分的值为0。所以,整个表达式的值为0(t=0)
输出的是x=0y=0z=1t=0
结果是x=2y=1z=1t=1
将第6行修改为
t=--x||--y&&--z;
当判断++x时,x值为0,即假,所以||后面的表达式需继续判断。--y的值为0因为后面是&&,所以后半部分的值为0。所以,整个表达式的值为0(t=0)
输出的是x=0y=0z=1t=0
更多追问追答
追问
x=2y=1z=1t=1是怎么得出的。。。
追答
因为先有x=y=z=1
再有x++
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询