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

时间:2023-01-02 19:49:24

昨天看群里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'。
 
 
C# i=0;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们指出
转载请联系
 

C# i=0;i=i++,i的值是多少?的更多相关文章

  1. MySQL5&period;0&plus;提示字段没有默认值&lpar;doesn’t have a default value&rpar;的解决方法

    方法一: 打开my.ini,查找  sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION” 修改为  sql ...

  2. C&num; 获取一定区间的随即数 0、1两个值除随机数以外的取值方法&lpar;0、1两个值被取值的概率相等&rpar;

    获取随机数 举例:0-9 Random random = new Random(); int j = random.Next(0, 9); 0.1两个值被取值的概率相等 int a = Math.Ab ...

  3. 为什么HashMap初始大小为16,为什么加载因子大小为0&period;75&comma;这两个值的选取有什么特点&quest;

    先看HashMap的定义: public class HashMap<K,V>extends AbstractMap<K,V>implements Map<K,V> ...

  4. SELECT INTO和INSERT INTO SELECT的区别 类似aaa&quest;a&equals;1&amp&semi;b&equals;2&amp&semi;c&equals;3&amp&semi;d&equals;4,如何将问号以后的数据变为键值对 C&num; 获取一定区间的随即数 0、1两个值除随机数以外的取值方法&lpar;0、1两个值被取值的概率相等&rpar; C&num; MD5 加密,解密 C&num;中DataTable删除多条数据

    SELECT INTO和INSERT INTO SELECT的区别   数据库中的数据复制备份 SELECT INTO: 形式: SELECT value1,value2,value3 INTO Ta ...

  5. 数据库TINYINT类型 参数0 mybatis取不到值

    tinyint存储0的奇怪问题  数据库TINYINT类型   参数0  mybatis取不到值 postman 传参 audited   =0          audited   =1  两种情况 ...

  6. 转载:as3&period;0下对象类型返回值与变量默认值的详细说明

    转自:http://www.cuplayer.com/player/PlayerCodeAs/2012/0905367.html Null.NaN.undefined 及各自应用对象:变量的默认值: ...

  7. vue2&period;0动态绑定图片src属性值初始化时报错

    在vue2.0中,经常会使用类似这样的语法 v-bind:src = " imgUrl "(缩写 :src = " imgUrl "),看一个案例 <te ...

  8. js 中 0 和 null 、&quot&semi;&quot&semi; Boolean 值关系

    在做字符串非空判断时,无意发现一个问题,记录下以便以后回顾. 问题描述:非空判断,只是校验传值的内容是否为"".null .undefined.当变量 赋值的字符串内容为 0,此时 ...

  9. ext js 4&period;0 grid表格根据列值的不同给行设置不同的背景颜色

    Code: Ext.create('Ext.grid.Panel', { ... viewConfig: { getRowClass: function(record) { return record ...

  10. mybatis做if 判断 传入值0 建议最好不要使用值0

    mybatis做if 判断 注意:下面这种写法只适用于 id 类型为字符串. <if test="id != null and id != '' ">     id = ...

随机推荐

  1. Android海康监控视频调用demo

    一. 开发环境 1. 操作系统:windows7(X64) 2. 开发工具:eclipse adt Build: v22.2.1-833290 JDK7 android SDK 3. 客户端设备版本: ...

  2. eclipse 闪退

    在eclipse.ini文件中加入 -Dorg.eclipse.swt.browser.DefaultType=mozilla

  3. 51nod1376 最长递增子序列的数量

    O(n2)显然超时.网上找的题解都是用奇怪的姿势写看不懂TAT.然后自己YY.要求a[i]之前最大的是多少且最大的有多少个.那么线段树维护两个值,一个是当前区间的最大值一个是当前区间最大值的数量那么我 ...

  4. Linux企业级开发技术(2)——epoll企业级开发之epoll接口

    epoll的接口非常简单,总共只有三个函数: 1.int epoll_create(intsize); 生成一个 Epoll 专用的文件描述符,size用来告诉内核这个监听的数目一共有多大.这个参数不 ...

  5. asp&period;net C&num; 实现微信服务器配置

    微信服务器配置接收页面示例代码 /// <summary> /// 微信的Token /// </summary> const string Token = "Tok ...

  6. 用命令行撤销工作区的所有更改(修改文件&amp&semi;&amp&semi;新增文件)

    话说起来之前放弃工作区所有的更改,我一直都是直接用VSCode在workingTree的按钮,如下:   直到有一天我感觉这样不够酷,于是我试了git reset --hard. 然并卵,这个命令虽然 ...

  7. SVN使用教程总结&lpar;转载)

    SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...

  8. python3&period;0 第三天 文件操作

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 Somehow, it seems the love I knew was alway ...

  9. FCC JS基础算法题&lpar;12&rpar;&colon;Where do I belong&lpar;数组排序并找出元素索引&rpar;

    题目描述: 先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引.举例:where([1,2,3,4], 1.5) 应该返回 1.因为1.5插入到数组[1,2,3,4]后变成[1,1.5 ...

  10. hadoop 常见 命令

    一  hadoop namenode 命令 1 格式化namanode 磁盘  hadoop namenode -format 二  hadoop fs 命令     和 linux  命令 非常类似 ...