A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wehuazi 中级黑马   /  2014-10-25 20:46  /  877 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 ?
同样进行了++操作为什么结果不一样呢?
求各位指点迷津!

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

3 个回复

倒序浏览
第一题:在if语句判断时x++==2不成立所以++y==2就不需要判断了(意思就是不执行++y)所以此时输出的y
回复 使用道具 举报 1 0
为1(与运算只要有一个不成立就不成立不需要再判断第二个条件了),第二题是或判断,意思是俩个条件中只要有一个成立就能进入if(){},第一个条件x++==2不成立所以要继续判断第二个条件++y==2,此时执行了++y,所以打印y时,y已经=2了
回复 使用道具 举报
求采纳,送点金币。。技术分太低了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马