c++ 在'v[--i] = 100时,哪个表达式优先"下标或一元表达式

brqmpdu1  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(111)

这是一个更基本的问题,而不是一个有用的问题,但它在这里。
根据C++标准,后缀表达式(例如v[i])优先于一元表达式(例如--i),因此,我想知道程序实现v[--i] = 100;语句的实际步骤顺序是什么。

std::vector<int> v = {0, 200};
int i = 1;
v[--i] = 100; // {100, 200}

给定前面提到的优先级,程序是否首先访问向量的元素200,然后才发生递减,在将其变为100之前指向0?

oknwwptz

oknwwptz1#

operator []operator --具有更高的优先级,但这在这里并不重要,因为operator[]需要计算参数--i,这意味着解析--i,然后将其值传递给operator[]
运算符优先级与运算顺序不同。运算符优先级仅确定哪些运算符应用于哪些表达式。

相关问题