+= 和 ++ 操作符区别简单介绍

我们知道:

int i = 5;

long j = 7;

i = i + j不能编译,但i += j却能编译运行,结果i = 12。

这是因为:

i += j 等同于 i = (int)(i+j);

总结就是:对复合赋值表达式来说,E1 op= E2 (诸如 i += j; i -= j 等等),其实是等同于 E1 = (T)((E1) op (E2)),其中,T是E1这个元素的类型。

这个问题,其实官方文档中已经解答了。 官方文档地址 §15.26.2 Compound Assignment Operators

以上所述是小编给大家介绍的+= 和 ++ 操作符区别简单介绍,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • PHP中=赋值操作符对不同数据类型的不同行为

    首先解释赋值操作符=的行为,看下面的例子: 复制代码 代码如下: $i = 0; $j = $i; $j = 0; echo $j; // 打印输出0 $arr = array(0); $arr2 = $arr; $arr2[0] = 1; echo $arr[0]; //打印输出0 class B { public $i = 0; } $b = new B(); $c = $b; $c->i = 1; echo($b->i); // 打印输出1 从这个例子可以看出,如果=操作符右边的变量为基

  • JavaScript中的操作符==与===介绍

    JavaScript中,==与===操作符均可用于判断两个值是否相等:不同之处在于,如果进行判断的两个值类型不一致,===操作符会直接返回false,而==操作符则会在类型转换后再进行判断.详细的判断规则如下: ===操作符的判断规则 1.如果两个值的类型不一致,返回false. 2.如果两个值的类型一致,值一致,返回true.NaN是一个特例,NaN===NaN返回false. 3.如果两个值均为object类型,那么与Java一样,除非两者引用一致(reference指向同一个对象地址),不

  • 讲解MySQL中<=>操作符的用法

    问题 : 我在看以前的一个开发者的代码时看到 WHERE p.name <=> NULL 在这个查询语句中 <=>符号是什么意思啊?是不是和 =号是一样啊?还是一个语法错误啊?但是没有显示任何错误或者异常.我已经知道了mysql中的 <> = !=等符号.      最佳回答 : 和=号的相同点 像常规的=运算符一样,两个值进行比较,结果是0(不等于)或1(相等);换句话说:'A'<=>'B'得0和'a'<=>'a'得1. 2.和=号的不同点 和

  • JS中==与===操作符的比较

    ===操作符: 要是两个值类型不同,返回false 要是两个值都是number类型,并且数值相同,返回true 要是两个值都是stirng,并且两个值的String内容相同,返回true 要是两个值都是true或者都是false,返回true 要是两个值都是指向相同的Object,Arraya或者function,返回true 要是两个值都是null或者都是undefined,返回true ==操作符: 如果两个值具有相同类型,会进行===比较,返回===的比较值 如果两个值不具有相同类型,也有

  • JavaScript中的比较操作符>、<、>=、<=介绍

    与==操作符一样,比较操作符(>.<.>=.<=)可以将对象转换成string或者number后再进行比较 -- 对于number,比较值的大小:对于string,则比较字符在编码表中出现的次序.与==操作符不一样的是,==会将Date对象优先转换成string后再加以比较,而比较操作符则会对包括Date在内的所有对象优先转换成number后再加以比较.其比较判断的规则如下: 1.操作符两边如果有对象,将其转换成number:如果无法转换成number,则将其转换成string.

  • perl高级排序,&lt;=&gt;操作符,飞船操作符

    按照要求进行的排序: 复制代码 代码如下: #!/bin/perl @number=qw/5 10 15 3 2 4 8 6 /;  my @descending =sort {$a<=>$b} @number;#这里$a=5,$b=10,因为$a在前,perl得到的结果是小数在前,也就是升序排列  print "@descending\n"; 结果如下:F:\>perl\a.pl  2 3 4 5 6 8 10 15 F:\> 如果要降序排列,只要把程序的第二

  • += 和 ++ 操作符区别简单介绍

    我们知道: int i = 5; long j = 7; i = i + j不能编译,但i += j却能编译运行,结果i = 12. 这是因为: i += j 等同于 i = (int)(i+j); 总结就是:对复合赋值表达式来说,E1 op= E2 (诸如 i += j; i -= j 等等),其实是等同于 E1 = (T)((E1) op (E2)),其中,T是E1这个元素的类型. 这个问题,其实官方文档中已经解答了. 官方文档地址 §15.26.2 Compound Assignment

  • Java中&和&&的区别简单介绍

    & 按位运算符,逻辑运算符 && 逻辑运算符 相同点:只要有一端为假,则语句不成立 假设有三个参数 int x = 1; int y = 2; int q = 1; 作为逻辑运算符时,&左右两端条件式有一个为假就会不成立,但是两端都会运行 if((x+y)==4 & q++>0) {} System.out.println(q); //q=2 &&也叫做短路运算符,因为只要左端条件式为假直接不成立,不会去判断右端条件式. if((x+y)==4

  • java String类常量池分析及"equals"和"==”区别详细介绍

    java "equals"和"=="异同 首先简单说一下"equal"和"==" ==操作对于基本数据类型比较的是两个变量的值是否相等, 对于引用型变量表示的是两个变量在堆中存储的地址是否相同, 即栈中的内容是否相同 equals操作表示的两个变量是否是对同一个对象的引用, 即堆中的内容是否相同. 综上,==比较的是2个对象的地址,而equals比较的是2个对象的内容. 再简单介绍一下String类 String类 又称作不可

  • JS获取各种宽度、高度的简单介绍

    有时候项目中会用到用js获取元素位置来定位元素,首先通过图片说明scrollWidth,clientWidth,offsetWidth的关系. JS获取各种宽度.高度的简单介绍: scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度 offsetHeight:获取对象相对于版面或由父坐标 of

  • iOS开发中指纹识别简单介绍

    ios开发中指纹识别简单介绍,在iphone系列中,是从5S以后开始有了指纹识别的功能,在ios8的时候开放的指纹验证的接口. 所以我们在进行指纹识别应用的时候要去判断机型以及系统的版本. 代码如下,下面需要特别注意的其实就是LAPolicyDeviceOwnerAuthentication和LAPolicyDeviceOwnerAuthenticationWithBiometrics的区别,以及检测系统的版本通过[UIDevice currentDevice].systemVersion.fl

  • 简单介绍java中equals以及==的用法

    简单介绍 equals方法是java.lang.Object类的方法有两种用法说明: 一.对于字符串变量来说,使用"=="和"equals()"方法比较字符串时,其比较方法不同. 1."=="比较两个变量本身的值,即两个对象在内存中的首地址.(java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属

  • C#中File和FileStream的简单介绍和用法

    前言 在近期的工作过程中发现自己的基础比较薄弱,所以最近在恶补基础知识.下面就对我所学习的File类和FileStream进行简单的总结. 1.首先先介绍File类和FileStream文件流 1.1  File类,是一个静态类,支持对文件的基本操作,包括创建,拷贝,移动,删除和打开一个文件.File类方法的参量很多时候都是路径path.主要提供有关文件的各种操作,在使用时需要引用System.IO命名空间. 1.2  FileStream文件流 只能处理原始字节(raw byte).FileS

  • 数据库之SQL注入原理以及过程的简单介绍

    1.产生SQL注入原因 开发代码的时候没有全面考虑到网络安全性,特别是在用户交互时,没有考虑到用户提交的信息中可能破坏数据库,没有对输入的数据进行合法的过滤.SQL 注入过程目的性是非常强的,其主要目标是 Web 应用的后台数据库,从数据库中获取信息和授予较高的权限,它先破坏数据库,再对数据库服务器进行破坏. 2.SQL注入原理 首先要了解web网站的架构: Web 网站架构,总体结构由 Web 服务器端.客户终端和通信协议三大部分组成. 表示层是指用户交互的界面.用户在使用时在表示层输入需求,

  • java String类常量池分析及"equals"和"==”区别详细介绍

    java "equals"和"=="异同 首先简单说一下"equal"和"==" ==操作对于基本数据类型比较的是两个变量的值是否相等, 对于引用型变量表示的是两个变量在堆中存储的地址是否相同, 即栈中的内容是否相同 equals操作表示的两个变量是否是对同一个对象的引用, 即堆中的内容是否相同. 综上,==比较的是2个对象的地址,而equals比较的是2个对象的内容. 再简单介绍一下String类 String类 又称作不可

  • Atom-IDE 的使用方法简单介绍

    Atom-IDE 的使用方法简单介绍 今日,GitHub 宣布与 Facebook 合作推出了 Atom-IDE -- 它包括一系列将类 IDE 功能带到 Atom 的可选工具包. 初次发布的版本包括更智能.感知上下文的自动完成:导航功能,如大纲视图和 goto-definition,以及其他有用的功能:还包括错误.警告提醒和格式化文档功能. 查看 Atom 博客以了解更多. Atom-IDE 包括适用于 C#, Flow, Java, JavaScript, PHP, 和 TypeScript

随机推荐