直接看编译后生成的字节码或者机器码,能更加直接的了解这俩货的区别,我这里用TimScript来进行演示,TimScript可以生成中文的调试文件,所以看得很清楚(注意:TimScript像Java一样将源代码编译成字节码而非机器码,字节码由Tim虚拟机执行),字节码和机器码其实执行原理一样具备类比条件
来个最简单的,i++,++i吧
##
其实生成的字节码指令完全一样看,执行效率自然也是完全一致的
再来个for循环吧

这两个for生成的字节码指令,除了跳转指令的地址和所使用的的变量地址有所不同以外,同样是一毛一样的指令,效率自然也是一样.
对于编译而言这种单独的”i++“和”++i“的语法逻辑是一样的,所以自然编译成一模一样的指令(字节码指令或机器码指令),这还不是编译器优化的问题,,,单独写这俩货的语法逻辑就是一样的
来个最简单的,i++,++i吧

其实生成的字节码指令完全一样看,执行效率自然也是完全一致的
再来个for循环吧

这两个for生成的字节码指令,除了跳转指令的地址和所使用的的变量地址有所不同以外,同样是一毛一样的指令,效率自然也是一样.
对于编译而言这种单独的”i++“和”++i“的语法逻辑是一样的,所以自然编译成一模一样的指令(字节码指令或机器码指令),这还不是编译器优化的问题,,,单独写这俩货的语法逻辑就是一样的