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

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

#include<stdio.h>
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 
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-30
因为++X后等于1,根据||前为1就可忽略后面的运算,所以算到X=1就终止运算了。
第2个回答  2014-01-21
z=0;
y=0;
x=0;
{x=x+1}||{(y=y+1)&&(z=z+1)}
第3个回答  2014-01-20
a=++z;
b=++y;
c=++x;
c||(a&&b);
第4个回答  2015-04-11
嗯,,它的正确答案是1.1.1追问

答案是1,0,0

相似回答