黑马程序员技术交流社区
标题:
求下面代码的详细分析步骤
[打印本页]
作者:
shenxian88
时间:
2015-4-30 15:10
标题:
求下面代码的详细分析步骤
本帖最后由 shenxian88 于 2015-4-30 20:18 编辑
int x,y,z;
x=y=z=1;
(x || ++y) && ++z;
printf("%d,%d,%d",x,y,z);
//这个运行的结果怎么是1、1、2求详细分析
复制代码
作者:
流风124
时间:
2015-4-30 15:32
本帖最后由 流风124 于 2015-4-30 15:37 编辑
(1)x=y=z=1,自右向左连续赋值,x y z 都是1
(2)
(x || ++y) && ++z;
(x||++y): x的值是1,或运算的结果是1,由于 || 是短路运算符,就是前面的值为1,后面不再执行,所以,++y这句不执行,到这里,x=1,y=1
(x||++y)的运算结果是1,执行 && 后面的代码,++z, z的值+1,所以 z=2
作者:
shenxian88
时间:
2015-4-30 20:19
谢谢,大神
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2