C++ 表达式求值为左值的示例

C++ 表达式求值为左值的示例,c++,C++,是否有任何表达式可以通过计算得到左值?我相信表达式会产生一个可以分配给左值的右值。如果你有x[y]=z,x[y]是左值,z是右值。显然,x[y]是一个表达式,可以对其进行计算。因此,可以对其求值以给出左值。Gabe是正确的,但更具体地说,任何导致引用的表达式都是左值。但这并不是全部,指针差异和数组访问都是导致左值的表达式。另一个示例是返回引用的函数,即std::vector的索引运算符(reference operator[](size\u type n),因此可以执行以下操作: std::ve

是否有任何表达式可以通过计算得到左值?我相信表达式会产生一个可以分配给左值的右值。

如果你有
x[y]=z
x[y]
是左值,
z
是右值。显然,
x[y]
是一个表达式,可以对其进行计算。因此,可以对其求值以给出左值。

Gabe是正确的,但更具体地说,任何导致引用的表达式都是左值。但这并不是全部,指针差异和数组访问都是导致左值的表达式。

另一个示例是返回引用的函数,即
std::vector
的索引运算符(
reference operator[](size\u type n
),因此可以执行以下操作:

std::vector< Z > vector;
vector[ y ] = z;
std::vectorvector;
向量[y]=z;
另一个例子:

(which ? x : y) = 10;