#include <iostream>
using namespace std;
int main()
{
int Array[] = {10, 20, 30};
cout << -2[Array];
return 0;
}
答案 0 :(得分:5)
对于任何数组(或指针)a
和索引i
,表达式a[i]
等同于*(a + i)
。由于commutative添加的性质,表达式*(a + i)
与*(i + a)
相同,相当于i[a]
。
这意味着你的表达式-2[Array]
(实际上是-(2[Array])
,这要归功于一般的否定运算符比索引运算符低operator precedence)与-Array[2]
相同。换句话说,你正在采用数组的第三个元素(记住数组索引是零基础)并否定它。
答案 1 :(得分:5)
2[Array]
会返回Array
中位置2的元素,即30。你在前面放了-
,所以你得到-30
答案 2 :(得分:1)
[]在“ - ”上有运算符优先级,所以
首先解决2 [数组],然后得到答案30 - (2 [数组])现在把值2 [数组] - (30) 所以你得到-30