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