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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白月光 中级黑马   /  2014-5-20 14:50  /  1860 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int x = 1,y = 1;
  2. if(x++==2 && ++y==2) {
  3.     x =7;
  4. }

  5. printf("x=%d, y=%d\n", x, y);
复制代码
分析:先看if后面小括号中的条件是否成立
x++==2就是先将x的原值与2比较看看是否相等,很明显原值1不等于2,x++!=2,因此在&&运算条件中后面的++y不需要参与运算了,但是x++要完成自增运算,所以最后x=2,y=1

  1. int x = 1,y = 1;
  2. if(x++==2 || ++y==2) {
  3.     x =7;
  4. }
  5. printf("x=%d, y=%d\n", x, y);
复制代码

分析:同样先看if后面小括号中的条件是否成立
x ++==2不成立,但是在||运算条件中还要看++y==2是否成立,++y先完成自增运算再与2相等,if条件成立,所以x=7,y=2




14 个回复

倒序浏览
支持一下
回复 使用道具 举报
楼主分析的不错
回复 使用道具 举报
     支持      楼主 加油      遇到 难度大的问题   及时与大家啊交流啊
回复 使用道具 举报

谢谢,继续努力!
回复 使用道具 举报

谢谢,得到前辈的肯定就是最好的鼓励,努力ing。。。。。
回复 使用道具 举报
戒惜舍得 发表于 2014-5-21 06:29
支持      楼主 加油      遇到 难度大的问题   及时与大家啊交流啊

谢谢鼓励,一定会及时和大家分享心得交流经验,希望前辈多多指点
回复 使用道具 举报
解释的很清楚 以前不明白的清晰啦 哈
回复 使用道具 举报
茄子 高级黑马 2014-5-21 12:20:15
9#
好基友,一起走!!!
回复 使用道具 举报
不错不错 支持一下下。
回复 使用道具 举报
很不错,支持下
回复 使用道具 举报

谢谢,很高兴与大家分享我的一点点心得
回复 使用道具 举报
Guardian_Angel 发表于 2014-5-21 20:42
不错不错 支持一下下。

谢谢,一起努力!
回复 使用道具 举报

谢谢,继续努力ing。。。
回复 使用道具 举报
茄子 发表于 2014-5-21 12:20
好基友,一起走!!!

:L一起努力!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马