可能是重复问题:
在C语言中,为什么a[5]和5[a]相等?
这个问题 询问为什么
a[5] == 5[a]
除了一个方面外,所有方面都得到了回答...
首先,为什么允许在整数后面放置数组下标?其次,为什么不能写类似于
[a]5
或者
[5]a
还是将[]
放在其他奇怪的地方?
换句话说,数组索引运算符允许的定义是什么?
编辑I:起初,我收到的引用标准的答案有点难以理解。但在回答者的帮助下,我现在明白了。指针或整数之后可以使用数组下标(方括号)。如果跟在指针后面,方括号内必须是一个整数。如果跟在整数后面,方括号内必须是一个指针。
我接受了得票较少的答案,因为他在让我理解标准引用时做了更多的手把手教学。但是严格引用标准的答案也是正确的。只是一开始理解起来比较困难。
编辑II:我不认为我的问题是重复的。我的问题是关于数组下标运算符允许的语法。它被引用标准的引用所回答,而这些引用从未出现在我被认为是重复的问题中。它是相似的,但并不是重复的。
E1[E2]
与*(E1+E2)
是相同的,并且“+”是可交换的运算符。 - Alexey Frunze[E1]E2
。 - Alexey Frunze