社区
C#
帖子详情
为什么 i 仍旧是 5 ,已经 ++ 了 呀
iamsea11
2003-08-20 10:57:32
int i=5;
int i=i++;
Console.WriteLine((i);
i++ 后 应该 i =6
...全文
50
10
打赏
收藏
为什么 i 仍旧是 5 ,已经 ++ 了 呀
int i=5; int i=i++; Console.WriteLine((i); i++ 后 应该 i =6
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
calmzeal
2003-08-20
打赏
举报
回复
i=i++;
first do i++
then i is 6
but i=i++ is to give the original i to i
that is 5
01101230
2003-08-20
打赏
举报
回复
反汇编的情况:
int i=5;
0000007c mov esi,5
i=i++;
00000081 mov ebx,esi
00000083 inc esi
00000084 mov esi,ebx
System.Console.WriteLine(i);
00000086 mov ecx,esi
可以看到实际上i原来的值被放到ebx里保存起来了。然后执行了i++;此时i=6;最后执行
mov esi,ebx 才最后把保存起来的值(5)又还原给等号左边的的变量(i)所以i=5
snla
2003-08-20
打赏
举报
回复
改为++i
panyee
2003-08-20
打赏
举报
回复
int j = i++; //这时肯定是5
如果
i++;//先自加
int j = i;//这时才是6
jiezhi
2003-08-20
打赏
举报
回复
++在前則先加,再使用﹔++在后,則先使用再加
jiezhi
2003-08-20
打赏
举报
回复
++在前則先加,再使用﹔++在后,則先使用再加
csdn_bob
2003-08-20
打赏
举报
回复
i=i++;
这一句相当于
i=i+1;
i=5;
因为它是先取得i=5,然后i自加=6,然后将取出的5给i!
BeyondLove2000
2003-08-20
打赏
举报
回复
首先,不能再定义int型的i;
其次,i++; 即可不必i=i++; =比++有限级高,赋值后才++的,所以值不变。
rouser
2003-08-20
打赏
举报
回复
為什麼會出現兩次定義?
vikey
2003-08-20
打赏
举报
回复
同意 panyee(快乐王子)
01101230(叶开)用的反汇编,呵呵
关于java和c++中 i=i++结果不同的分析
学习过一门计算机语言的人一定知道j=i++的运算结果,整个表达式的值为i,而i的值变为i+1;那么i=i++又是一个什么情况呢?下面分别用java 和 c 两种语言来做个测试: JAVA: public class test { public static void main(String args[]) { inti,j; i
java 中 i=i++ 的解释
记得大学刚开始学C语言时,老师就说:自增有两种形式,分别是i++和++i,i++表示的是先赋值后加1,++i是先加1后赋值,这样理解了很多年也没出现问题,直到遇到如下代码,我才怀疑我的理解是不是错了: public class Client { public static void main(String[] args) { int count =0; for(in
Java i++原理及i=i++的问题说明
学习过一门计算机语言的人一定知道j=i++的运算结果,整个表达式的值为i,而i的值变为i+1;那么i=i++又是一个什么情况呢?下面分别用java 和 c 两种语言来做个测试: JAVA: public class test { public static void main(String args[]) { inti,j; i
c语言中printf函数与前置后置++的过程分析
生活总不如人内心想象的容易,需要一个探索的过程。 好了话不多说,先看下面一段代码. int i = 0; printf("%d %d %d",i,i++,++i); 我们可以知道printf函数参数是从右向左遍历 第一个前置++是先自增再使用,应该打印出1 第二个i++是先使用再自增,应该打印出0 第三个打印i,应该是0 我们跑一下代码看看结果 结果是2,1,2,与我们想象的太不一样了。这是为什么呢? 看一下反汇编的结果 可能很多小伙伴不懂,用通俗的语言来分析这种结果,我上网查了一下资..
Java学习之神奇的i=i++
学习过一门计算机语言的人一定知道j=i++的运算结果,整个表达式的值为i,而i的值变为i+1;那么i=i++又是一个什么情况呢?下面分别用java 和 c 两种语言来做个测试:Java:public class test{ public static void main(String[] args) { int i = 0; for(
C#
110,566
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章