+= 与 ++操作符区别

我们知道:

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

时间: 2024-08-24 12:26:17

+= 与 ++操作符区别的相关文章

C++ 箭头-> 双冒号:: 点号.操作符区别

点 . 如果变量是一个对象或者对象引用,则用它来访问对象成员. 箭头 -> 如果变量是一个对象指针,则用它来访问对象成员. 双冒号 :: 如果操作目标是一个具有名空间的标识符,则用它来访问其名空间内的东西.具有名空间的东西很多,除了纯粹的namespace外,正如你所知道的还有class,struct,union.C++ 箭头-> 双冒号:: 点号.操作符区别

C#中的is和as操作符区别小结

1. is 是验证操作对象是不是自己希望的 运算公式:对象  is  类型 返回true:对象是指定类型 返回false:对象不是指定类型 2. as 是将对象转换成指定类型 运算公式:对象 as 类型 转换成功:对象的类型就是指定的类型 转换失败:返回null 注意: The  "is" and "as" operator must be used with a reference type or nullable type (example:'int' is a

布尔操作符

and . or .not  三个布尔操作符号用于比较布尔值 1.二元布尔操作符 如果两个布尔值都为True, and操作符就将表达式求值为True,否则求值为False:如下: >>> True and True True >>> True and False False >>> 以下为and的操作符的比较: 表达式 求值 True and True True True and False False False and True False Fal

python2与python3的区别齐全【整理】

本文链接:https://blog.csdn.net/pangzhaowen/article/details/80650478 展开 一.核心类差异1. Python3 对 Unicode 字符的原生支持.Python2 中使用 ASCII 码作为默认编码方式导致 string 有两种类型 str 和 unicode,Python3 只 支持 unicode 的 string.Python2 和 Python3 字节和字符对应关系为:2. Python3 采用的是绝对路径的方式进行 import

Python爬取CSDN博客文章

之前解析出问题,刚刚看到,这次仔细审查了 0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.windows下环境搭建 3.java里连接redis数据库 4.关于认证 5.redis高级功能总结1.基础底层数据结构1.1.简单动态字符串SDS定义: ...47分钟前1 url :http://blog.csdn.net/youyou1543724847/

编写高质量代码——“零星”总结

不要让main函数返回void //在C++中绝对没有出现过 void main(){  }这样的函数定义,在C语言中也是. //两种 main 的定义方式:int main( void ); //                     int main( int argc, char** argv ) //第一版的C语言中只有 int 一种数据类型,为了兼容 需要,不明确标明返回值的,默认为 int //在main函数中,return 语句的作用在于离开main函数(析构掉所有具有动态生存时

RxJava 学习笔记(八) --- Combining 结合操作

@(Rxjava学习笔记) RxJava 学习笔记(八) - Combining 结合操作 RxJava 学习笔记八 Combining 结合操作 StartWith 在数据序列的开头插入一条指定的项 Merge 将多个Observable合并为一个 MergeDelayError 将多个Observable合并为一个 Zip 使用一个函数组合多个Observable发射的数据集合然后再发射这个结果 CombineLatest 当两个Observables中的任何一个发射了一个数据时通过一个指定

Java——谜题

1.谜题36  try和finally语句,代码如下,判断输出 public class Indecisive { public static void main(String[] args) { System.out.println(decision()); } static boolean decision() { try { return true; } finally { return false; } } } 最后的输出为false,为什么呢?这是因为try的异常结束(例如return

python2和python3的差异

核心类差异 Python3对Unicode字符的原生支持 Python2中使用 ASCII 码作为默认编码方式导致string有两种类型str和unicode,Python3只支持unicode的string.python2和python3字节和字符对应关系为: - 编码&字符串 字符串: py2: unicode v = u"root" 本质上用unicode存储(万国码) (str/bytes) v = "root" 本质用字节存储 py3: str v