我偶然遇到了这位美女,但我真的不明白!
#include <iostream>
using namespace std;
int main() {
int array[] = {10, 20, 30};
cout << -2[array];
return 0;
}它打印-30。提前谢谢你
编辑:不是this question的副本,因为"-“标志。
发布于 2016-01-12 17:30:28
这既有趣又简单。-array[2]与-*(array + 2)相同,-*(2 + array)与-2[array]相同,后者为-30。
对于在数组(With arrays, why is it the case that a[5] == 5[a]?)中使用方括号的一般情况,已经有一个重复,但这里的奇怪之处是前面的一元操作符。
假设实际的数组索引是-2,就像array[-2]一样,这似乎很直观。
但是,由于运算符优先规则,这种情况并未发生:
operator []比一元-具有更高的优先级,因此首先应用它。我展示了“常规”数组订阅的转换,以使这更直观。
https://stackoverflow.com/questions/34750128
复制相似问题