黑马程序员技术交流社区

标题: i++与++i主要有哪些区别(C语言) [打印本页]

作者: Manli123    时间: 2015-12-26 17:42
标题: i++与++i主要有哪些区别(C语言)
i++与++i主要有哪些区别,在for循环,使用哪个效率更高,更合理

作者: huqianqian    时间: 2015-12-26 18:21
在计算中会有很大的差别!在FOR循环中这两个没啥区别,就看使用的习惯了!这是我的理解!
作者: 野火    时间: 2015-12-26 18:52
i++相当于,int a, a=i,i=a+1,先返回i的值再加1,而++i,只是i=i+1,直接返回i+1后的值,所以从效率上讲,推荐++i,因为i++要申请一个内存空间,然后将值压入栈中,最后不用还要释放。
作者: foolishlovepig    时间: 2015-12-27 13:43
这个。。。那倒不是看具体的功能来选择的么?循环自己的逻辑需要哪个就用哪个喽
作者: hmpx_ljj    时间: 2015-12-27 14:29
通常我们在编写需要for循环实现的程序时有两种实现方法:

1. for(int i = 0;i<arr.length;i++)

2. for(int i = arr.length-1;i>=0;i--)

通过效率上的比较方案二要好于方案一。

个人认为他们的差异主要是在方案一每次是和一个大数做比较,而方案二是和零做比较。
计算机在处理这两种时做的是减法,处理起来方案二比较快。

以上是个人认为,放到这和大家共同讨论。
作者: 木叶    时间: 2015-12-27 19:06
除非特别,要不然一般是i++
作者: Manli123    时间: 2015-12-27 21:41
huqianqian 发表于 2015-12-26 18:21
在计算中会有很大的差别!在FOR循环中这两个没啥区别,就看使用的习惯了!这是我的理解! ...

哦,但我记得以前老师说过,其中一种更好
作者: Manli123    时间: 2015-12-27 21:43
野火 发表于 2015-12-26 18:52
i++相当于,int a, a=i,i=a+1,先返回i的值再加1,而++i,只是i=i+1,直接返回i+1后的值,所以从效率上讲, ...

好像是这么一回事
作者: Manli123    时间: 2015-12-27 21:45
hmpx_ljj 发表于 2015-12-27 14:29
通常我们在编写需要for循环实现的程序时有两种实现方法:

1. for(int i = 0;i=0;i--)

这个应该一样,和0比较,和大数比较,都是与32位的0,1做比较,所以是一样的
作者: Manli123    时间: 2015-12-27 21:46
木叶 发表于 2015-12-27 19:06
除非特别,要不然一般是i++

这个是比较常见
作者: huqianqian    时间: 2015-12-28 10:59
Manli123 发表于 2015-12-27 21:41
哦,但我记得以前老师说过,其中一种更好

奥澳,在大学学校里我们写for循环都用的i++;
作者: kegao    时间: 2015-12-28 12:25
,i=a+1,先返回i的值再加1,而++i,只是i=i+1,直接返回i+1后的值,所以从效率上讲, ...
作者: 大明    时间: 2015-12-28 21:32
一个是先加一,一个是先提取表达式
作者: 学以致用表初衷    时间: 2015-12-29 07:27
i++ 是先使用在变化。 比如a = 3 第一次使用的数据就是3 然后输出的时候才会变化4
++i 是先变化再使用。         a=3  第一次使用的数值就是4 输出的时候也是4
作者: 一步步往上爬    时间: 2016-1-2 14:21
i++是加前取值 ++i是加后取值




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2