++、--,自增自减要怎么算?
++ -- 属于单目运算符
++ 表示自增一
-- 表示自减1
有两种情况:
1、单独使用
表示自增或者是自减,没有什么区别
2、参与运算
如果 ++ 放在操作数的左边,如:++a 就表示 a 先自增一 再参与运算(--同理)
如果 ++ 放在操作数的右边,如:a++ 就表示先参与运算 再自增一(--同理)
有时候觉得挺简单的,不就是自增一、自减一吗。有时候算着就出错了
那就先上两道题目吧!
如题:
int x = 3;
int y = (x++)%(++x);
求 x、y 的值
解析:
1、上面3赋值给x
2、下面 x++ 表示用(x++ = 3)先参与运算,此时x已经偷偷自增一 x=4 了
3、后面 ++x 表示先自增一为(++x = 5),进过上面一次自增已经是 4 的 x 再增了一,就 x=5 了
4、有了上面的计算,y = 3%5 ,y=3
5、x=5 y=3
总结:x 有了两次的自增,所以就 x+1+1 = 5
int n = 5;
n = ++n + ++n;
求n=?
解析:
1、上面 5 赋值给 n
2、(下面 ++n 表示先自增1)再加上( ++n 先自增1),就是 n = 6 + 7
3、n 被重新赋值,所以最后输出 n = 13
练练手:
int a = 2;
int b = 3;
int res1 = ((a++)+(++b))*2+(--a)%(b++)-(++a)*3+(--b)/(--a);
请推断res1,a,b此时的值
心得:运算的时候,一定要记录下来a b两个数的自增或自减后的情况,最终的a b的值就是要输出的
计算结果: res1=8 a=2 b=2
遇到自增自减的题,只要仔细点,把每一步的自增自减后得值记录好,相信自己!就不会有问题的
网友评论