执行下列语句,y值: int x,y,z; x=y=z=0; ++x||++y&&++z; 求解释

2024-12-01 04:37:59
推荐回答(5个)
回答1:

#include
void main(){ 
int x,y,z; //首先声明 
x=y=z=0; //赋值z=0,y=z,x=y 
if(++x||++y&&++z) //首先++x,x=1,所以||(或)之后的语句不论为1还是0都不影响结果,所以不会算
//&&(与)的优先级高于||(或),所以后面可以看做一个整体 
printf("x=%d,y=%d,z=%d",x,y,z); //所以y=0 
}

回答2:

因为++X后等于1,根据||前为1就可忽略后面的运算,所以算到X=1就终止运算了。

回答3:

z=0;
y=0;
x=0;
{x=x+1}||{(y=y+1)&&(z=z+1)}

回答4:

a=++z;
b=++y;
c=++x;
c||(a&&b);

回答5:

嗯,,它的正确答案是1.1.1