c语言:int x,y,z,w; x=y=z=1; w=++x||++y&&++z; 经过计算后w,x,y,z的值分别为多少,为什么?
c语言:intx,y,z,w;x=y=z=1;w=++x||++y&&++z;经过计算后w,x,y,z的值分别为多少,为什么?...
c语言:int x,y,z,w; x=y=z=1; w=++x||++y&&++z; 经过计算后w,x,y,z的值分别为多少,为什么?
展开
3个回答
展开全部
#include<iostream>
using namespace std;
int main()
{
int x,y,z,w;
x=y=z=1; //x=1,y=1,z=1;
w=++x||++y&&++z;//x=2,因为++x之后x=2;++x整个表达式也为2>0,所以||后的运算就停止了w= 1;y=1;z=1;
///或运算遇到大于等于0就返回1.不再向后计算。
cout<<"w="<<w<<endl;
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
cout<<"z="<<z<<endl;
return 0;
}
结果:w=1.x=2.y=1,z=1
using namespace std;
int main()
{
int x,y,z,w;
x=y=z=1; //x=1,y=1,z=1;
w=++x||++y&&++z;//x=2,因为++x之后x=2;++x整个表达式也为2>0,所以||后的运算就停止了w= 1;y=1;z=1;
///或运算遇到大于等于0就返回1.不再向后计算。
cout<<"w="<<w<<endl;
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
cout<<"z="<<z<<endl;
return 0;
}
结果:w=1.x=2.y=1,z=1
展开全部
x=y=z=1
++x,所以x=2,又因为||运算符的规则是左边为真,右边就不需要算了,所以y=1不变
++z,所以z=2
所以得x=2,y=1,z=2
++x,所以x=2,又因为||运算符的规则是左边为真,右边就不需要算了,所以y=1不变
++z,所以z=2
所以得x=2,y=1,z=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x=1 y=1 z=1 w=3
前方提 x=y=z=1
w=++x||++y&&++z
w=x+y+z int
即为x=1 y=1&& z=1 w=3
懂了?
前方提 x=y=z=1
w=++x||++y&&++z
w=x+y+z int
即为x=1 y=1&& z=1 w=3
懂了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询