| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1302 人关注过本帖
标题:i++与++i的区别在哪儿?求详细
只看楼主 加入收藏
zr7023ljm
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-11-14
收藏
 问题点数:0 回复次数:14 
i++与++i的区别在哪儿?求详细
    老师说了,但我感觉还是不懂,那个大虾给个简答!!!
搜索更多相关主题的帖子: 老师 
2011-11-14 09:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
书上最详细

授人以渔,不授人以鱼。
2011-11-14 09:40
qq393825817
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-11-10
收藏
得分:0 
i++和++i在一般情况下没有什么区别。  他们的区别体现在赋值时++i是先加再赋值,i++是先赋值再加。。   
    我也是新手,如果说的不到位请包涵。。。
2011-11-14 12:10
gtrmao
Rank: 2
等 级:论坛游民
帖 子:38
专家分:32
注 册:2011-10-24
收藏
得分:0 
i++是先得i值再加加,++i是先加再的i值。
i=2;
a=i++;
得a=2.
i=2;
a=++i;
得a=3.
2011-11-14 12:27
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
i++是先返回表达式的值,这个表达式的值是i起始值的一份拷贝,比如int i = 3; i++的值就是3。然后再对i进行+1操作。

举一个例子:
比如int i = 3, j; j = i++;
结果:j = 3, i = 4

在进行j = i++运算时先返回i++这个表达式的值,也就是i起始值的一份拷贝,这个拷贝会存在一个临时的区域,当表达式返回后这个临时对象就会销毁,然后在进行i+1操作。

++i是先进行+1操作,然后返回i这个变量,比如int i = 3; ++i的值是4。

举一个例子:
int i = 3, j; j = ++i;
结果:j = 4, i = 4;

在进行j = ++i运算时先对i进行+1操作,这样i的值就变为了4,然后再返回i这个变量,i++返回的是一个临时对象,而++i返回的是一个变量,因此i++是不可以作为左值的,而++i却可以作为左值。

比如:
int i = 3;
++i = 10;//正确,因为++i返回的是一个变量
i++ = 10;//错误,因为i++返回的是一个临时对象

愿用余生致力编程
2011-11-14 12:39
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:0 
请上机调试,实践与理论相辅相成

为游戏狂~~!!    大家努力编哈!
2011-11-14 12:43
zx0920zx
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-11-14
收藏
得分:0 
i++先运算再自加1,++i先自加1运算
2011-11-14 12:46
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
其实i++与++i挺有意思的,
比如:
int i = 5;
int j, k;
j = i++ + i++ + i++;
k = ++i + ++i + ++i;

j = ?
k = ?

愿用余生致力编程
2011-11-14 12:50
DefineFeel
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:136
注 册:2011-10-18
收藏
得分:0 
回复 8楼 我菜119
谁一看就能给出答确切的数值说明他什么都不懂
2011-11-14 15:58
鳌头观月
Rank: 1
来 自:南京
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-11-10
收藏
得分:0 
回复 楼主 zr7023ljm
设a=5
①a++=5   此时a=6
②++a=6   此时a=6
2011-11-14 16:19
快速回复:i++与++i的区别在哪儿?求详细
数据加载中...
 
   



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

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