我听说在C++中,preincrements(++ i)比postincrements(i ++)快一点.真的吗?这是什么原因?
我目前正在学习用Java编程,我对标题中列出的一元增量器有疑问,我在其他地方找不到.我刚开始玩它们,并且不能完全决定在for循环中使用哪一个,因为看起来前缀(增量然后评估)和后缀(评估然后增量)之间的行为的差异将不适用于for声明.所以我尝试了两者,两者都有效.这让我很担心,因为我想按照它们的使用方式使用它们.
所以我的问题是,它们是否可以在递增for循环时真正互换,或者是否存在一些模糊的问题我会在另一个副作用中遇到一个副作用?
我决定给他们计时(下图),++x肯定比他跑得快x++,但我不知道为什么.任何人都可以扩展吗?
谢谢!
public class PlusPlus
{
public static void main(String[] args)
{
long startTime1, startTime2, endTime1, endTime2;
final double COUNT = 100000000;
//times x++ incrementing
startTime1 = System.currentTimeMillis();
for(int x = 0; x < COUNT; x++);
endTime1 = System.currentTimeMillis();
System.out.println("x++ loop: " + (endTime1 - startTime1) + " milliseconds");
//times ++x incrementing
startTime2 = System.currentTimeMillis();
for(int x = 0; x < COUNT; ++x);
endTime2 = System.currentTimeMillis();
System.out.println("++x loop: " + (endTime2 - startTime2) + …Run Code Online (Sandbox Code Playgroud)