相信很多初学者对++,-- 在运算中是先运算再赋值还是先赋值再运算 常常会弄错,因当时学习C++时也有类似的问题,总结出判断方法,希望对这块知识点有疑问的同学有一些帮助。
1、记住一句话:递增和递减 , 目标变量的值都是加法或减法后计算所得的值,和前置还是后置一点关系都没有。
如上图,num1不管是前置的++还是后置的++ , 出来后的值都是计算后的值。
2、当++, -- 运算符和 赋值运算符(=)在一个表达式中时,记住一个规律: 只有 = 和++,--在一起时(=++,=--)这样的形式才是用计算后的值与后面的再计算,否则都是用计算前的值计算
如图:= 和++ 相邻 表达式的计算逻辑 就是 先计算++ 后得到23 之后再+2 最后结果为25 25是test1的值, 根据第1条,num2为23.
如图:test2 = num2++ +2 ,因 = 和 ++ 不相邻,所以 表达式实际可以认为 test2 = num2+2 ;当前num2为23+2 = 25 没毛病。 根据第1条,此时num2为24
3、当表达式中重复出现++,--对象时,要结合 第1 和第2 条组合计算
如图:表达式 test3 = num2++ test2 +num2 ; 先计算的是 num2++ + test2 根据第2条的逻辑 计算值为 24+25 = 49 ;再根据第1 条的逻辑此时的num2 = 25 所以之后的+ num2 就是 49+25 = 74;最后输出test3为74 没毛病。
4、此条逻辑是根据 第2条扩展的,针对复杂的表达式:当(+,-)遇到(++,--)时,按从左到右原则如(+ ++ ,+ --,- ++,- --)等只有++,--和运算符相邻,并且++,--在运算符的右边 这种情况的计算逻辑都是 先做++,-- 之后再计算。
如图:第一次计算 num3++ + num4++ 因++在+的左边不再右边 所以 这个表达式其实就是 test4 = num3 + num4 为3 ; 计算后 num3 为2 ,num4为3
第二次计算 + ++ 符合此条逻辑 test4 = num3+ (num4+1) ;2+3+1 = 6 ;
以上就是对前置后置递增计算优先级的分析,希望对大家有帮助。