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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白月光 中级黑马   /  2014-5-20 14:50  /  1747 人查看  /  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 个回复

正序浏览
茄子 发表于 2014-5-21 12:20
好基友,一起走!!!

:L一起努力!
回复 使用道具 举报

谢谢,继续努力ing。。。
回复 使用道具 举报
Guardian_Angel 发表于 2014-5-21 20:42
不错不错 支持一下下。

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

谢谢,很高兴与大家分享我的一点点心得
回复 使用道具 举报
很不错,支持下
回复 使用道具 举报
不错不错 支持一下下。
回复 使用道具 举报
茄子 高级黑马 2014-5-21 12:20:15
9#
好基友,一起走!!!
回复 使用道具 举报
解释的很清楚 以前不明白的清晰啦 哈
回复 使用道具 举报
戒惜舍得 发表于 2014-5-21 06:29
支持      楼主 加油      遇到 难度大的问题   及时与大家啊交流啊

谢谢鼓励,一定会及时和大家分享心得交流经验,希望前辈多多指点
回复 使用道具 举报

谢谢,得到前辈的肯定就是最好的鼓励,努力ing。。。。。
回复 使用道具 举报

谢谢,继续努力!
回复 使用道具 举报
     支持      楼主 加油      遇到 难度大的问题   及时与大家啊交流啊
回复 使用道具 举报
楼主分析的不错
回复 使用道具 举报
支持一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马