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是个干扰项,去掉也一样

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们指出

转载请联系

时间: 2024-10-26 03:34:29

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

MySQL5.0+提示字段没有默认值(doesn’t have a default value)的解决方法

方法一: 打开my.ini,查找 sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION” 修改为 sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION” 然后重启MYSQL . 方法二: MySQL 5 uses a strict mode which needs to be disabled. In Windows, Goto Start–>Progr

为什么HashMap初始大小为16,为什么加载因子大小为0.75,这两个值的选取有什么特点?

内容转自:https://blog.csdn.net/Dazhu233/article/details/79596584 先看HashMap的定义: public class HashMap<K,V>extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable HashMap是AbstractMap的子类,实现了Map接口. HashMap() Constructs an empty Hash

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

在vue2.0中,经常会使用类似这样的语法 v-bind:src = " imgUrl "(缩写 :src = " imgUrl "),看一个案例 <template> <div> <img :src="imgUrl"> </div> </template> <script> export default { data(){ return { captcha_id: &quo

图像细化函数(背景为黑色像素值为0,前景为白色像素值255,必须只含有0和255的像素值,即二值化后的图像)

procedure thinimage(srcimage:pIplImage);var count:Integer; //表示迭代次数 Zhangmude:array [1..9] of Integer; deletelist1,deletelist2:Tlist<Tcvpoint>; //存放着要删除的点 idx,i,j:Integer; whitepointtotal,ap:Integer; tempoint:TCvPoint;begin deletelist1:=Tlist<Tcv

一元二次方程ax2+bx+c=0,a,b,c的值由键盘输入请编写等程序求下列方式的解

3xvn1y慌铝撼眉姑共<http://weibo.com/20180413p/230927983206707477876736> ixzp81搅吞杆菜案榷<http://weibo.com/20180413p/230927983044219952177152> 9v5055纠坪踊杂簇腺<http://weibo.com/iPbrVGVp/230927983025193389658112> 60zxtu挡幢拱撬街詹<http://weibo.com/OICNZgF

9、Cocos2dx 3.0游戏开发三查找值小工厂方法模式和对象

重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27704153 工厂方法模式 工厂方法是程序设计中一个经典的设计模式.指的是基类中仅仅定义创建对象的接口,将实际的实现推迟到子类中. 在这里.我们将它稍加推广,泛指一切生成并返回一个对象的静态函数. 一个经典的工厂方法如同这样: Sprite* factoryMethod() { Sprite* ret = new Sprite(); //在这里对 r

C# 一个数除以 0 有两种放回值; double.NaN 是double的一个constant字段, 表示&quot;不是一个数&quot;

A method or operator returns NaN when the result of an operation is undefined. For example, the result of dividing zero by zero is NaN, as the following example shows. (But note that dividing a non-zero number by zero returns either PositiveInfinity

《Effective C#》条款8:确保0为值类型的有效状态

.NET系统的默认初始化机制会将所有的对象设置为0[14].对于值类型来讲,我们无法阻止其他程序员将其所有的成员都初始化为0[15].因此,我们应该将0作为值类型的默认值. 枚举类型就是一种典型的情况.我们创建的枚举类型决不应该将0视为无效状态.我们知道,所有的枚举类型都继承自System.ValueType.默认的枚举值从0开始,但是我们可以更改这种默认行为. public enum Planet { // 显式赋值. // 否则将默认从0开始. Mercury = 1, Venus = 2,

Swift2.0语言教程之函数的返回值与函数类型

Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有一个返回值的函数 开发者希望在函数中返回某一数据类型的值,必须要在函数声明定义时为函数设定一个返回的数据类型,并使用return语句进行返回.其中,return语句的一般表示形式如下: return 表达式 其中,表达式可以是符合Swift标准的任意表达式.而具有返回值的函数声明定义形式如下: fu