C语言 for循环中i++和++i的比较
for循环
for (语句1; 语句2; 语句3)
{
循环体
}
语句 1 :初始化,在循环体开始前执行
语句 2 :定义运行循环体的条件
语句 3 :在循环体已被执行之后执行
i++与++i的异同
for(i = 1, i < n, i++) VS for(i = 1, i < n, ++i),运算结果相同,运算时间不同。
for循环中 i++与++i
i++
++i
运算结果
相同
相同
运算时间
长
短
运算结果相同
for(i = 1, i < n, i++) VS for(i = 1, i < n, ++i)
当for循环进行到第三个表达式的时候:
对第一个for循环,它的式子是i++,也就是先返回i加1之前的数值,然后将i+1。
对第二个for循环,它的式子是++i,也就是先将i+1,然后返回i加1之后的数值。
关键的是,对于i++和++i,并没有变量或函数来接收它们的返回值,所以它们的执行效果是一样的,即,将i+1。
所以程序运行结果是相同的。
运算时间不同
i++
i++是在使用当前值之后再+1,所以需要一个临时的变量来转存。
++i
而++i则是在直接+1,省去了对内存的操作的环节,相对而言能够提高性能。
参考:
https://blog.csdn.net/hippotomons/article/details/88993166
https://www.jianshu.com/p/dd35ffcf6c08
https://www.cnblogs.com/Paul-Yellow/p/10900475.html
Kernighan, Ritchie. C程序设计语言[J]. 2012.