C# i=0;i=i++,i的值是多少?

2017-01-06 11:21:53来源:cnblogs.com作者:Aaxuan人点击

第七城市

昨天看群里dalao们聊天,有一个人出来问这个问题

这个题应该是挺常见的

 

int i = 0, t;
        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++); 群里面就很多人开始说就是会增加,我也觉得会增加,当时觉得虽然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); 第一个输出的答案是2第二个是6第一个就是0+2第二个就是2+4    新手初学,哪里不对还请dalao们指出转载请联系 
第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台