i++,++i和i--

作者: 文贞武毅 | 来源:发表于2019-08-06 23:59 被阅读0次

对于i=i++ 赋值运算最后算,先算i++
将1压入操作数栈,将i压入局部变量表
将i自增,局部变量表中i=2
再将操作数栈中的1赋值给i
因此i曾经变为2但结果还是1

i++和++i在理论效率上是没有什么区别的,因为他们经过编译器优化后的字节码是一样的,
而在for循环的比较中i--的速度更快,这是因为对于寄存器的操作中,有几个标志位,i--时,减法会影响4个标志位,其中有一个是判断正负,比较时可以直接用这个来判断,而i++只会影响一个是否溢出标志位,每次循环都要多一条指令来判断是否大于阈值

相关文章

  • i++,++i和i--

    对于i=i++ 赋值运算最后算,先算i++将1压入操作数栈,将i压入局部变量表将i自增,局部变量表中i=2再...

  • 区分i++ ++i

    i++: 先执行i 再给i执行+1 ++i 先给i+1 在执行i i-- , --i 同理

  • 自增自减

    自增(++)与自减(--)感觉这是很有意思的两个运算符号, 前缀形式:++i、--i 后缀后缀:i++、i-- 整...

  • i++和++i的区别

    答案:“3, 2, 2” i++会先进行运算然后才自增 ,++i会先自增然后加入到运算i--,--i也是一样。

  • 再次写swift的收获

    1.网络请求工具 使用 2.熟悉for循环的做法,这里是一套自己想法的算法(包括i--和i++的),只是看递增递减...

  • 第三天卒

    1、一元操作符 ++是递增操作符,--是递减操作符 i++ 先赋值 后自加 i-- 先赋值 后自减 ++i ...

  • 2019-06-02置自增和自减( Preincrement a

    定义:对于变量在自增( ++i 或 i++ )或自减( --i 或 i-- )后表达式的值又没有没用到的情况下,需...

  • java运算符(一元运算符,二元运算符,三元运算符)

    JAVA元运算符存在一元运算符,二元运算符,三元运算符 一元运算符: i++、i--、++i、--i public...

  • Java中的i++ 和 ++i 在for循环使用

    Java的i++ 和++i 的区别i++:先赋值,后计算;++i;先计算,后赋值。 for循环中的i++和++i...

  • i++和++i

    i++ 先赋值后相加 //结果65 ++i 先自加后赋值 //结果66

网友评论

    本文标题:i++,++i和i--

    本文链接:https://www.haomeiwen.com/subject/nqtndctx.html