从零开始学C++:p1——a++ & ++a

众所周知,C++中的每条语句和表达式,其结果部分都分为左值与右值,而且要么是左值,要么就是右值。

左值、右值是很直观的表述——在表达式等号左边是就是左值,右边就是右值;等号左边往往是被赋值对象,右边往往是所赋的值。

因此,左值就应当被内存持续存储,而右值只是临时的存储对象。

 

然而,自增与自减两个运算符却很容易让人搞迷糊——a++与++a是不同的:

++a是一个左值,而a++是一个右值

 

这要怎么理解呢?

 

我们要知道,运算是有前后的,所以a++就是后自增运算,这意味着计算机会先给出a的当前值,然后再自增运算;++a则反过来

 

所以,因为a++给出的值是临时的,是“即将变化的”,所以它是一个右值;++a是已经完成运算的,是“不再变化的”,所以它是一个左值

 

明白这一点,有助于之后的循环结构搭建。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值