| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 510 人关注过本帖
标题:[讨论]“小”题也可“大”作——论i++
只看楼主 加入收藏
blackorchis
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-7-4
收藏
 问题点数:0 回复次数:8 
[讨论]“小”题也可“大”作——论i++
如下:
int i = 0;
i = i + 1;


int i = 0;
i++;
究竟有什么本质区别?
搜索更多相关主题的帖子: 作——论 
2007-11-05 23:49
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
i++;
i + 1 操作的是2个数(对于CPU)

i++ 只操作一个数, 速度更快。


i++ 对于处理二进制数据的CPU,只是i 增加 1,而不把 2 个数相加。








—>〉Sun〈<—
2007-11-06 00:11
kidd2005
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-11-2
收藏
得分:0 
基本上说应该是没什么区别啦~

潜心苦C,却发觉百C不得其解啊~
2007-11-07 14:32
C语言的深度
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:卡特的怀抱
等 级:版主
威 望:1
帖 子:9577
专家分:19
注 册:2007-10-22
收藏
得分:0 
区别在于加1和加2的问题

用代码打出楼房...用编程编出幸福...
2007-11-07 14:38
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

牵涉到操作码和操作数的问题

两个操作数最起码要到访问地址两次.而当操作数只有一次.


倚天照海花无数,流水高山心自知。
2007-11-07 15:37
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
i++不等价于i=i+1
1.前者速度略快于后者
2.前者表达式的值与后者表达式的值不一样。例如当i=1时,前者表达式值为1,后者表达式值为2

英者自知,雄者自胜
2007-11-07 15:51
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:0 

i++
汇编后得:
inc i
i=i+1
汇编后得:
mov eax,i
add eax,1
mov i,eax

根据汇编指令来说,
前者速度快,属立即寻址,一步到位
前者是一条INC指令
后者是N条指令


天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2007-11-07 16:00
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 
以下是引用静思在2007-11-7 15:51:47的发言:
i++不等价于i=i+1
1.前者速度略快于后者
2.前者表达式的值与后者表达式的值不一样。例如当i=1时,前者表达式值为1,后者表达式值为2


准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2007-11-07 19:02
mebol
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-10-7
收藏
得分:0 
对头!
2007-11-07 20:52
快速回复:[讨论]“小”题也可“大”作——论i++
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018651 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved