【发布时间】:2017-10-24 05:00:26
【问题描述】:
我读过后缀递增和递减运算符返回操作数的右值。假设这是真的,这样的代码怎么可能?:
int arr[5]{};
int *p = arr;
for (int i = 0; i != 5; ++i)
*p++ = i;
我的想法是
- 根据运算符优先级,
*p将首先得到评估。 - 然后后缀增量将增加值并返回对象的副本作为右值。
- 然后我感到困惑,因为右值不应该在赋值运算符的左侧...
所以我的问题基本上是:
*p++ = i;怎么可能?
【问题讨论】:
标签: c++ arrays pointers operators rvalue