Java中的自运算
一个问题:
int i = 3; int a = i++; System.out.println("a = "+a); //输出 a=3
int i = 3; int b = ++i; System.out.println("b = "+b); //输出 b=4
这个好理解,因为 i++ 是先赋值再自增,++i是先自增再赋值。
但是:
int i = 3; i = i++; System.out.println("i = "+i); //输出什么 ?? 答案是:3
这个问题其实很简单,只需要理解两个关键点:1. 表达式的返回值。 2. 临时变量。
注意:i++ 这个表达式返回的值是i自增前的值,原理是:编译器创建一个临时变量来保存 i 自增前的值,在 i 自增完后再返回这个临时变量的值。所以 a = i++ 底层发生的步骤如下:
int temp = i ; i++; a = temp ;
所以 i = i ++ 对应的步骤是:创建一个临时变量temp,来存储i的值,然后对i进行自增运算,然后再把 temp的值赋给i;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律