码迷,mamicode.com
首页 > Web开发 > 详细

.NET基础之:i++和i=i+1和++i的区别

时间:2016-06-20 14:09:18      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

家都知道,i++通常情况都是等同于i=i+1,在编译时,clr会自动向上转换

 比如说
   int t =1;
   t++;   等同于 t=t+1;  //1 是int,和int型相加,int + int 赋值给int时,编译没有错误

long t= 1;
   t++;   等同于 t=t+1;  //1 是int,和long 型相加,由于有int 向上自动转换成 long,int(这时转换成了long) + long 赋值给long时,编译没有错误

   short t=1;
   t++;  不等同于 t=t+1; //1 是int,和short类型相加,由于 short 向上自动转换成 int,short(这时转换成了int + int 赋值给short 时,编译肯定会出现错误!

   这里,自动向高级转换时,是t的“值”自动转换了,并非是其类型真的变了!

 

i++ 和 ++i一样的吗?

答案是否定的,在遇到赋值运算时候,i++是先进行赋值,后进行+操作

而++i是先进行加操作,后进行赋值操作

例如:   int count = 5;

            int i = count++;//此时,i=5

            i = count;      //此时 i=6

.NET基础之:i++和i=i+1和++i的区别

标签:

原文地址:http://www.cnblogs.com/sylone/p/5600320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!