黑马程序员技术交流社区

标题: 代码分析:关于x++ [打印本页]

作者: 白月光    时间: 2014-5-20 14:16
标题: 代码分析:关于x++
  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





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