short s=1;s=s+1; short s=1;s+=1; 有区别么?? 如果有的话区别是什么?

short s=1;s=s+1; short s=1;s+=1; 有区别么?? 如果有的话区别是什么? 没有的话值是多少?

short s=1; s=s+1; 自然是编译不通过的 提示损失精度 那么 short s=1; s+=1; 为什么能编译通过那? 还有一个问题

隐式类型转换可以从小到大自动转,即byte->short->int->long如果反过来会丢失精度,必须进行显示类型转换 s+=1的意思与s=s+1不同, s=s+1这句先执行s+1然后把结果赋给s,由于1为int类型,所以s+1的返回值是int, 编译器自动进行了隐式类型转换所以将一个int类型赋给short就会出错, 而s+=1不同由于是+=操作符,在解析时候s+=1就等价于s = (short)(s+1),翻番来讲就是 s+=1 <=> s = (s的类型)(s+1)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Golang语言--闭包和普通函数调用区别

代码: ? 运行这段程序,输出结果为 1 2 3 3 2 1 这里就是普通的函数调用,每次调用func p时,完成 i 的值复制,然后打印,此时 i 值复制了3...

2776
来自专栏码云1024

c++模板与泛型编程

2913
来自专栏java一日一条

Java 程序优化:字符串操作、基本运算方法等优化策略

字符串对象或者其等价对象 (如 char 数组),在内存中总是占据最大的空间块,因此如何高效地处理字符串,是提高系统整体性能的关键。

661
来自专栏专注数据中心高性能网络技术研发

HERD--GCC宏

减少跳转语句失效时CPU等待取指令时间,提高CPU效率 使用__builtin_expect(EXP,N) 意思是EXP==N的概率很大 一般封装为LIKELY...

2955
来自专栏黑泽君的专栏

c语言基础学习08_内存管理

============================================================================= 涉及...

2511
来自专栏刘君君

JVM Specification notes 1 -Jvm Structure

摘要: Jvm Structure 正文: Java 虚拟机结构 Class文件格式 数据类型 原始类型(基本类型) 数值类型{整数[byte8 short1...

3677
来自专栏程序员八阿哥

王老板Python面试(10):17道python笔试面试真题

GIL 是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程...

1252
来自专栏java一日一条

java面试小题系列(一)

923
来自专栏玩转JavaEE

MongoDB固定集合

一般情况下我们创建的集合是没有大小的,可以一直往里边添加文档,这种集合可以动态增长,MongoDB中还有一种集合叫做固定集合,这种集合的大小是固定的,我可以在创...

3397
来自专栏张俊红

零基础学习爬虫并实战

总第63篇 本篇主要从爬虫是什么、爬虫的一般流程、爬虫各个流程的实现方法、爬虫实例四个方面分享零基础了解爬虫,并进行简单的实战。 在阅读下面之前,我们...

2.5K10

扫码关注云+社区

领取腾讯云代金券