为什么for循环语句经常用i++而不是++i?

while 和do-while语句也总用i++,不用++i,怎么回事啊?
2024-11-20 03:36:54
推荐回答(5个)
回答(1):

都说些什么啊,这是。
你的疑惑关键就在于不知道 i++ 和++i 的区别。你从字面上就能看得出来,i++ 是先使用,后自加; ++i 是先自加,后使用。给你举个例子:
i=1;
T=i++; //这里的T=1;
i=1;
T=++i; //这里的T=2;
好了,再看看for(;;)是怎么工作的吧,每次循环,都要运算一下条件(就是两个“;”中间的),如果条件成立,就运行for(;;)内部,不成立就退出。所以在这里是一样的。

回答(2):

回答的都不太完整

1. 对于语言内置的基本类型比如int等等来说,性能上两者没有区别
2. 对于复合对象,比如类,结构体之类的,++i在性能上好于i++

原因:
i++的运算过程如下:
int temp = i ;
i = i + 1 ;
return temp ;

++i的运算过程如下:
return i + 1 ;

可见i++比++i多了一个中间变量temp,这对于简单类型来说并无影响,但对于复合类型来说,存储一个对象还是需要一点时间的。完毕!

回答(3):

i++ 是后加加,++i是前加加,前加加动作提前1步,所以要用后加加

for (i=0;i<10;i++)
{ 循环体里的 i = 0,1,2,.....9 } 循环体每次执行后 i 才增 1,判断i<10

回答(4):

在这里没有区别

在语义上,i++是先使用i再对i加1;++i是先对i加1,再使用i

回答(5):

习惯问题,事实上,++i会比i++执行快那么一丁点