黑马程序员技术交流社区

标题: C语言++问题 [打印本页]

作者: wehuazi    时间: 2014-10-25 20:46
标题: C语言++问题
1>        第一题
int x = 1,y = 1;
if(x++==2 && ++y==2) {
    x =7;
}
printf("x=%d, y=%d\n", x, y);

2>        第二题
int x = 1,y = 1;
if(x++==2 || ++y==2) {
    x =7;
}
printf("x=%d, y=%d\n", x, y);
为什么第一y = 1,第二天的y = 2 ?
同样进行了++操作为什么结果不一样呢?
求各位指点迷津!


作者: cctao    时间: 2014-10-25 20:57
第一题:在if语句判断时x++==2不成立所以++y==2就不需要判断了(意思就是不执行++y)所以此时输出的y
作者: cctao    时间: 2014-10-25 21:00
为1(与运算只要有一个不成立就不成立不需要再判断第二个条件了),第二题是或判断,意思是俩个条件中只要有一个成立就能进入if(){},第一个条件x++==2不成立所以要继续判断第二个条件++y==2,此时执行了++y,所以打印y时,y已经=2了
作者: cctao    时间: 2014-10-25 21:01
求采纳,送点金币。。技术分太低了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2