i++和++i的区别

本文探讨了C++中前置递增运算符++i和后置递增运算符i++的差异。++i作为左值可以直接赋值,而i++是右值,不支持直接赋值。前置递增返回加1后的值,后置递增返回原始值并延迟加1。在涉及赋值操作时,i++会比++i多一步创建临时变量的步骤。理解这些概念对于C++编程至关重要。
摘要由CSDN通过智能技术生成

++i是左值,可以直接对++i赋值,例如++i=3。
i++是右值,不能直接对i++赋值,例如i++=3会报错。
++i是指被加1之后的i,而i++是指i被加1的这一个操作表达式,虽然两者的结果都为1,但是++i的结果是直接返回的加1后的i,而i++返回的是一个新的变量,值为i+1。++i和i++的结果都为1,因为这两者本身在汇编语言中没有任何区别,但是涉及到赋值操作的时候,i++会比++i多一行指令。

i++;  
++i;   //在汇编语言中二者完全相同

a=++i,直接对a赋值++i

i=i+1;
return i;

a=i++,会申请一个临时空间存储运算之后的值,然后将这个临时值赋值给i。

汇编语言的逻辑大概类似于:
int x;
x=i+1;
i=x;  
return i;
但是为什么不能作为左值呢,因为作为左值时没有申请临时空间这一步,左值需要直接就是内存地
址,不能有额外的相关操作

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在外面要叫头哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值