zoukankan      html  css  js  c++  java
  • C# i=0;i=i++,i的值是多少?

    昨天看群里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们指出
    转载请联系
     


    转载请标明出处

    作者:AaXuan

    地址:http://www.cnblogs.com/Aaxuan

    知识共享许可协议

    本作品采用  知识共享署名 3.0 未本地化版本许可协议  进行许可。

  • 相关阅读:
    《构建之法》读书笔记六
    《构建之法》读书笔记五
    《构建之法》读书笔记四
    《构建之法》读书笔记三
    《构建之法》读书笔记二
    《构建之法》读书笔记一
    开发mis系统需要的技术
    java异常处理
    多态
    动手动脑6
  • 原文地址:https://www.cnblogs.com/Aaxuan/p/6254188.html
Copyright © 2011-2022 走看看