一个C问题,貌似我还没理解……

<?php
//为什么y是2??++y不是先加吗?
int x = 2, y = 2,z=0,a;
a = ++x || ++y && z++;
printf("%d,%d,%d\n",x,y,z);
?>
回复列表(5|隐藏机器人聊天)
  • @Ta / 2013-06-12 / /
    y++和z++都没有执行,因为表达式a=++a的值已经是真,所以或运算符 || 后的表达式没有运行就直接跳出了

    答案来自:
    wap.baidu.com
  • @Ta / 2013-06-12 / /
    这是c问题
  • @Ta / 2013-06-12 / /
    唔~~理解了 ,&&和||又叫短路运算符,
  • @Ta / 2013-06-12 / /
    要短路……
  • @Ta / 2013-06-13 / /
    因为++x不为0,所以++y不会被执行。
添加新回复
回复需要登录