表达式评估为左值的示例

时间:2011-03-03 01:18:26

标签: c++

是否有任何表达式可以评估给出左值?我相信表达式会产生一个可以赋值给左值的右值。

4 个答案:

答案 0 :(得分:7)

如果您有x[y] = z;x[y]是左值,z是左值。显然x[y]是一个表达式,可以进行评估。因此,可以对其进行评估以给出左值。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

另一个例子是一个返回引用的函数,即std::vector的索引运算符(reference operator[]( size_type n),所以你可以这样做:

std::vector< Z > vector;
vector[ y ] = z;

答案 3 :(得分:1)

又一个例子:

(which ? x : y) = 10;