c++ 左右值问题

天王盖地虎626 发布于 2021/06/05 14:32
阅读 242
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>


 a++是先取出持久对象a的一份拷贝,再使持久对象a的值加1,最后返回那份拷贝,而那份拷贝是临时对象(不可以对其取地址),故其是右值;

 ++a则是使持久对象a的值加1,并返回那个持久对象a本身(可以对其取地址),故其是左值;
 pFlag和*pFlag都是持久对象(可以对其取地址),是左值;

为什么a++和++a不一样哦?我的理解应该都是左值或者都是右值

加载中
0
tcxu
tcxu

360百科指出:
左值与右值在C/C++中表示位于赋值运算符两侧的两个值,赋值号左边的就叫左值(left-value),右边的就叫右值(right-value)。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部