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

家都知道,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

时间: 2024-10-18 11:02:30

.NET基础之:i++和i=i+1和++i的区别的相关文章

SVG的基础概念等知识,以及SVG与CANVAS的区别

本文主要介绍了SVG的基础概念等知识,以及SVG与CANVAS的区别,最后给出了一个简单示例,方便大家更好的了解SVG可缩放矢量图形.推荐给大家. SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式.SVG是W3C制定的一种新的二维矢量图形格式,也是规范中的网络矢量图形标准.SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式. 什么是SVG? SVG 指

(基础篇) php中0与空 Null false的区别

<?php $test=0; if($test==''){ echo '<br />在php中,0即为空'; //被输出 } if($test===''){ echo '<br />在php中,0即为空'; //不被输出 } if($test==NULL){ echo '<br />在php中,0即为空'; //被输出 } if($test===NULL){ echo '<br />在php中,0即为空'; //不被输出 } if($test==fal

jQuery基础:prop()与attr()的区别

1.结论: 处理HTML本身的属性,使用prop() 处理HTML自定义属性,使用attr() 2.对待属性值为true 或者false类的元素: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input t

[iOS基础控件 - 3.5] NSBundle, UIImageView和UIButton的区别, 模拟器和文档

1.NSBundle1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹2> 利用mainBundle就可以访问软件资源包中的任何资源3> 模拟器应用程序的安装路径 /Users/aplle/资源库/Application Support/iPhone Simulator/7.1/Applications 2.UIImageView和UIButton1> 使用场合 * UIImageView: 如果仅仅是显示图片,不需要监听图片的点击 * UIButto

Java基础知识强化98:final、finally、finally区别

1. final修饰符(关键字)     如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此,一个类不能既被声明为abstract,又被声明为final.     将变量或方法声明为final,可以保证它们在使用中不被改变.其初始化可以在两个地方: 一是其定义处,也就是说,在final变量定义时直接给赋值: 二是在构造函数中.这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值,而在以后的引用中只能读取

Java千百问_03基础语法(013)_&gt;、&gt;&gt;、&gt;&gt;&gt;有什么区别

点击进入_更多_Java千百问 1.>.>>.>>>有什么区别 了解java运算符看这里:java种的运算符都有哪些 了解java运算符优先级看这里:java运算符的优先级是怎样的 ">"属于关系运算符,而">>".">>>"则按位运算符,看一下它们各自的含义: 运算符> 关系运算符,表示大于. 如:if(a>b)-结果是boolean类型. 运算符>>

Python基础学习-Python中最常见括号()、[]、{}的区别

Python中最常见括号的区别: 在Python语言中最常见的括号有三种,分别是:小括号().中括号[].花括号{}:其作用也不相同,分别用来代表不同的Python基本内置数据类型. Python中的小括号(): 代表tuple元祖数据类型,元祖是一种不可变序列.创建方法很简单,大多数时候都是小括号括起来的. 1 >>> tup = (1,2,3) 2 >>> tup 3 (1, 2, 3) 4 >>> () #空元祖 5 () 6 >>&

[JS 基础] touchEvent中的changedTouches,targetTouches和touches的区别

对于移动端开发中 touchEvent(触摸事件) 中changedTouches,targetTouches和touches的区别往往不容易弄清,故特意查询了 MDN相关资料 1. 其中,对 changedTouches 的解释是 A TouchList whose touch points (Touch objects) varies depending on the event type, as follows: For the touchstart event, it is a list

操作系统基础知识之————单线程(Thread)与多线程的区别

单线程(Thread)与多线程的区别 (一)首先了解一下cpu: 随着主频(cpu内核工作时钟频率,表示在CPU内数字脉冲信号震荡的速度,等于外频(系统基本时间)乘倍频)的不断攀升,X86构架的硬件逐渐成为瓶颈,最高为4G,事实上目前3.6G主频的CPU已经接近顶峰. 多线程编程的目的,就是"最大限度地利用CPU资源",当某一线程的处理不需要占用 CPU 而只和 I/O , OEM BIOS 等资源打交道时,让需要占用 CPU 资源的其它线程有机会获得CPU资源. 每个程序执行时都会产

php基础:文件包含与引用 require和include的区别

//require和include//require遇到错误或者文件不存时 代码不会往下执行执行会报致命错误适合用在链接重要的文件如链接数据库没有那个文件就不能执行 就用requier//include 遇到错误或者文件存在时,代码会尽量往下执行 把正确的显示出来 报警告错误适用于不是那么重要的比如广告页面的引用图片和文件 没有的话显示文字也可以 再往后执行代码// require可以无限制引用文件 只要引用一次可以用require_once 载入多个也只执行一次 include_once也一样