问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java里面i++和++i到底有什么区别?

发布网友 发布时间:2022-04-23 06:08

我来回答

2个回答

热心网友 时间:2023-11-05 15:27

1、赋值顺序不同
++ i 是先加后赋值;i ++ 是先赋值后加;++i和i++都是分两步完成的。
因为++i 是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i = a =b,即 ++i 是一个左值;i++ 的后面一步是自增,不是左值。
形象的理解可以是i++先做别的事,再自己加1,++i先自己加1,再做别的事情。
2、效率不同
比如i=3,b=i++就是说b=3,完成之后让i变成4,b=++i就是先让i++变成4,然后b=4,其中++i比i++效率要高些。一般来说在循环域里面,这两者并没有什么很大的区别,但是要注意其生存周期,以及i值在程序流中的变化。
3、 i++ 不能作为左值,而++i 可以。
左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。一般来说,左值是可以放到赋值符号左边的变量。
但能否被赋值不是区分左值与右值的依据。比如,C++的const左值是不可赋值的;而作为临时对象的右值可能允许被赋值。左值与右值的根本区别在于是否允许取地址&运算符获得对应的内存地址。

热心网友 时间:2023-11-05 15:28

++ i 是指先把变量i的值加1,然后再把结果值赋值给左边变量;
i ++ 是先把变量i的值赋值给左边变量,然后再把变量i的值加1;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何理解“时间就是空间,空间就是时间”? 办公室副主任竞聘演讲稿范文 学校办公室主任竞聘演讲稿范文 最新办公室主任竞聘演讲稿 办公室主任竞聘演讲稿优秀范文 ...堆墨现象,墨线 接地和粘度都正常,请问应如何解决 ...都正常了开始喷印结果喷一条墨线好恐怖怎么解决呀各位老师 威力喷码机 求一份学生会演讲词 大学学生会个人优秀演讲稿 新时期石油石化企业地质档案人力资源管理策略 教育学是什么样的一门学科,怎样去学好它? 三步踩abc中的a步b步和i步的区别在哪 上海师范大学法政学院的专业设置 i++和 ++i的区别 管理学就业方向及前景 i =1; 和i=i 1;有什么区别 十万火急!!!关于专业问题? 如何将心理学应用到人力资源管理当中 “i++”和“++i”的区别 工商管理和 人力资源管理 哪个好点? 请教i++与++i的区别 人事新手,应该看什么书 ++i和i++有什么区别 请举例说明 谢谢 从事人事工作考什么证书好 i++与++i有什么区别是什么? 人力资源专业 和计算机专业哪个更好就业 人力资源管理是文科专业还是理科专业 求*劳动人事学院人力资源管理专业的考研专业课历年真题和参考书目 人力资源的解释 自增运算符i++和++i的区别 for(i=1;i>n;i++)与for(i=1;i>n;++i)有何区 英语句子中用到的I与I am(I'm)的区别?谁能告诉我的用法意义,谢谢! 详细解释一下++i和i++的区别 I步的长度是怎样测量的 工行i类和ii类区别 包书皮时怎样把书皮包出三角形的折角? 包书皮的具体过程 包书皮的尺寸以及方法是什么? 包书皮的过程 不用胶条的包书皮方法 简单点的包书皮方法 八爪鱼的做法都有哪些?哪些做法简单易学? 各种包书皮的方法? 怎样包书皮 带图 包书皮的方法,最好有图。如果有的话,有没有比较好看、个性的。稍微简单点,别太浪费纸的。不要视频。 作业 本怎样包白皮??? 求助大神!傲腾内存有什么用?是当内存用吗 怎样做八爪鱼好吃 360手机助手里重复的联系人怎样删除?