您的位置:首页 > 编程语言 > C语言/C++

左值和右值

2017-06-04 15:56 260 查看
在C++中,可以放到复制运算符
=
坐标的是左值,可以放到赋值运算符右边的是右值。

有些变量既可以当左值右可以当右值。

左值(Lvalue) → Location

表示内存中可以寻址,可以给它赋值(const类型的变量例外)

右值Rvalue) → Read

表示可以知道它的值(例如常数)

一个典型的例子

a++ : 先使用a的值,再给a加1,作为 左值

// a++的实现
int temp = a;
a = a + 1;
return temp;


++a : 先加再用,作为 右值

a = a + 1;
return a;


左值符号 &

右值符号 &&

在C++中,临时对象不能作为左值,但是可以作为常量引用,
const &


C++ 11中的std::move可将左值引用转化成右值引用。

指针与引用的区别:

指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

引用的目的主要在于函数的参数传递中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 左值 右值 引用 指针