c++ - 下标运算符优先级

标签 c++ operator-precedence

下标运算符具有第二高的运算符优先级(参见 the table )。但是,它似乎表现得好像它的优先级很低。例如:

int arr[] = {10,20,30,40,50};
cout << arr[1+2];

此代码输出 40,这表明 + 的结果在应用下标运算符之前可用,这反过来表明 + 的优先级高于下标运算符。我错过了什么?下标运算符的高优先级如何表达?

最佳答案

下标运算符 [] 应用于 arr 并且 argument 是 1 + 2。该参数与优先级无关[] 运算符。

比照。像 1 + arr[1 + 2] 这样的表达式。由于您引用的优先级,分组1 + (arr[1 + 2])不是 (1 + arr)[1 + 2] 这将是一些奇怪的指针算法!

关于c++ - 下标运算符优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57989262/

相关文章:

java初学者,运算符优先级表

java - 运算符优先级,哪个结果是正确的?

c++ - Qt中的Pimpl习语用法,寻找简洁的方式

c++ - 函数作为参数 vs 函数指针作为参数

c++ - 存储/广播指向函数<void()的函数指针

Python - 奇怪/意外的行为 - 运算符的优先级

c - 运算符结合性、优先级

C++,无法从so库访问包含的头文件

java - 为什么 C++/Java 内存模型不包含条件变量

c - C中的后增量和前增量