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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马