【面试题】s += 1 和 s = s + 1的区别

server/2025/1/8 15:17:15/

文章目录

  • 1.问题
  • 2.发现过程
  • 3.解析

1.问题

以下两个程序真的完全等同吗?

short s = 0;
s += 1;

short s = 0;
s = s + 1;

2.发现过程

初看s += 1 和 s = s + 1好像是等价的,没有什么区别。很长一段时间内我也是这么觉得,因为当时学习c语言的时候教科书上将s += 1转换成s = s + 1帮助我们去理解,所以我将这个迁移到了java语言当中。但是直到遇到了一个有意思的题目,于是亲自在idea中去测试了一下,结果发现s += 1 没有报错,而 s = s + 1报错了。

在这里插入图片描述
通过idea我们会发现,报错的原因是因为我们将int类型赋值给short类型,而没有进行强制类型转换。

3.解析

在这里插入图片描述
在这里插入图片描述
s += 1的底层会有一个强制类型转换,将右边的结果转换成s的类型。

在这里插入图片描述

在这里插入图片描述

作者:Listener-1379    
出处:Listener-1379博客
github地址:https://github.com/beyong2019

本博客中未标明转载的文章归作者Beyong有,欢迎转载,但未经作者同意必须保留此段声明,且在文章明显位置给出原文连接,否则保留追究法律责任的权利。


http://www.ppmy.cn/server/62.html

相关文章

1.C++入门

1.关键字(C98) 2.命名空间 在 C/C 中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存 在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是 对标识符的名称进行本地化 &#xff…

算法第42天动态规划4

416 分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等 def canPartition(nums:List[int])->bool:total_sumsum(nums)if total_sum%2!0:return Falsetarget_sumtotal_sum//2dp[[Fal…

1.Chinese Tiny LLM_ Pretraining a Chinese-Centric Large Language Model

文章目录 摘要一、背景二、预训练数据统计信息数据处理 模型架构 三、SFT四、Learning from Human Preferences五、评估数据集和指标训练过程和比较分析安全性评估中文硬指令理解与遵循评价 六、结论 https://arxiv.org/abs/2404.04167https://github.com/Chinese-Tiny-LLM/Chi…

李彦宏:开源模型会越来越落后

李彦宏:开源模型会越来越落后 昨天听完的李总讲座 大家以前用开源觉得开源便宜,其实在大模型场景下,开源是最贵的。所以,开源模型会越来越落后。 ——李彦宏 至于开源还是闭源,这和企业的利益息息相关。 随着科技的迅猛…

C# linq 根据多字段动态Group by

实现类&#xff1a; public static class LinqHepler {/// <summary>/// 根据单个字段动态Group/// </summary>/// <typeparam name"T"></typeparam>/// <param name"source"></param>/// <param name"prop…

【笔试强训】Day1 --- 数字统计 + 两个数组的交集 + 点击消除

文章目录 1. 数字统计2. 两个数组的交集3. 点击消除 1. 数字统计 【链接】&#xff1a;数字统计 解题思路&#xff1a;模拟&#xff0c;利用数学知识&#xff0c;计算每个数字中2出现的个数。&#xff08;这里也可以将数字转换成字符串来统计字符’2’出现的个数&#xff09…

穿越“至暗期”后,三只松鼠的“百亿路”稳了吗?

文 | 螳螂观察 作者 | 易不二 三只松鼠的高端性价比战略已经有了初步成效。 继交出20203年净利润高增的年报之后&#xff0c;2024年一季度&#xff0c;三只松鼠的营收与利润均实现了有史以来的最高增幅。 财报显示&#xff0c;2023年三只松鼠实现营收71.15亿元&#xff1b;…

html接入高德地图

1.申请key key申请地址&#xff1a;https://console.amap.com/dev/key/app 官方文档 https://lbs.amap.com/api/javascript-api-v2/summary 2.html接入示例 需要将YOUR_KEY替换成自己的key <!doctype html> <html> <head><meta charset"utf-…