首页 > 代码库 > C# i=0;i=i++,i的值是多少?
C# i=0;i=i++,i的值是多少?
参考页面:
http://www.yuanjiaocheng.net/entity/update-entity.html
http://www.yuanjiaocheng.net/entity/delete-entity.html
http://www.yuanjiaocheng.net/entity/add-entity-graph.html
http://www.yuanjiaocheng.net/entity/update-entity-graph.html
http://www.yuanjiaocheng.net/ASPNET-CORE/first.html
昨天看群里dalao们聊天,有一个人出来问这个问题
这个题应该是挺常见的
int i = 0, t;
for(t = 0;t <= 5;t++)
{
i = i++;
Console.WriteLine(i);
}
for(t = 0;t <= 5;t++)
{
i = i++;
Console.WriteLine(i);
}
大佬说for是个干扰项,去掉也一样
int i = 0;
Console.WriteLine(i = i++);
Console.WriteLine(i = i++);
Console.WriteLine(i = i++);
Console.WriteLine(i = i++);
群里面就很多人开始说就是会增加,我也觉得会增加,
当时觉得虽然i先被赋值等于0,之后i的值是会增加,第一个输出等于1。
然后有人跑了一遍,结果是输出了一堆0
在进行表达式处理的时候,首先会对i++这样的运算进行处理,就是说,第一步不是赋值
为i创建i‘,然后让i自增。
处理完i++之后,就会进行表达式的更低级的运算处理,但参与运算的是i‘,
这个时候,将i‘赋值给i 。最后,释放系统所创建的变量,如i‘。
然后还有一道升级版的
对于++i的处理,则与i++恰好相反,系统首先会给i进行自增处理,然后才会创建i‘
int i = 0;
Console.WriteLine(i = i++ + ++i);
Console.WriteLine(i = i++ + ++i);
Console.WriteLine(i = i++ + ++i);
第一个输出的答案是2
第二个是6
第一个就是0+2
第二个就是2+4
新手初学,哪里不对还请dalao们指出
转载请联系
C# i=0;i=i++,i的值是多少?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。