能讲解一下为什么这个程序的运行结果是这样吗
1个回答
展开全部
①x=y=z=0; ++x||++y||++z;
由于++x为1,或运算++x||++y的结果一定为1,不再计算++y,直接返回1。这种特性称为短路运算。同理,1||++z的结果一定为1,不再计算++z,直接返回1。最终x=1,y=0,z=0。
②x=y=z=0;++x&&++y||++z;
++x的结果为1,继续计算++y,结果也为1,所以与运算++x&&++y返回1。1||++z结果一定为1,不再计算++z,直接返回1。最终x=1,y=1,z=0。
③x=y=z=0;++x&&++y&&++z;
++x的结果为1,继续计算++y,结果也为1,所以与运算++x&&++y返回1。1&&++z,继续计算++z,结果也为1,所以整个表达式返回1。最终x=1,y=1,z=1。
④x=y=z=0;++x||++y&&++z;
&&优先级高于||,所以表达式相当于++x||(++y&&++z)。由于++x为1,或运算++x||(++y&&++z)的结果一定为1,不再计算++y&&++z,直接返回1。最终x=1,y=0,z=0。
由于++x为1,或运算++x||++y的结果一定为1,不再计算++y,直接返回1。这种特性称为短路运算。同理,1||++z的结果一定为1,不再计算++z,直接返回1。最终x=1,y=0,z=0。
②x=y=z=0;++x&&++y||++z;
++x的结果为1,继续计算++y,结果也为1,所以与运算++x&&++y返回1。1||++z结果一定为1,不再计算++z,直接返回1。最终x=1,y=1,z=0。
③x=y=z=0;++x&&++y&&++z;
++x的结果为1,继续计算++y,结果也为1,所以与运算++x&&++y返回1。1&&++z,继续计算++z,结果也为1,所以整个表达式返回1。最终x=1,y=1,z=1。
④x=y=z=0;++x||++y&&++z;
&&优先级高于||,所以表达式相当于++x||(++y&&++z)。由于++x为1,或运算++x||(++y&&++z)的结果一定为1,不再计算++y&&++z,直接返回1。最终x=1,y=0,z=0。
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询