c - 为什么 2[myArray] 是有效的 C 语法?

标签 c arrays syntax pointers

<分区>

重复

In C arrays why is this true? a[5] == 5[a]


给定一个数组

 myArray[5] = { 0, 1, 2, 3, 4 };

一个元素可以被访问为

 2[myArray]

为什么?当我看到这个表达式时,我想象 C 试图访问指针“2”并且未能添加“myArray”指针增量以取消引用该地址。我错过了什么?

最佳答案

在 C 中,a[b] 等价于 *(a + b)。当然,+ 运算符是可交换的,因此 a[b] 与 b[a] 相同 与 *(b + a) 相同与 *(a + b) 相同。

关于c - 为什么 2[myArray] 是有效的 C 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/848705/

相关文章:

c - Xor 加密器换行问题

c - 抽象解释器如何工作?

c++ - 返回指针数组(CvSeq 指针)

javascript - 如何定义从 2D 数组生成的对象的 id

c - 数组声明方括号内的星号在C中是什么意思

c - R_X86_64_32S 和 R_X86_64_64 重定位是什么意思?

c - 指针程序

php - 从数据库获取数据时数组的问题

java - 如何克服这种 java 语法,使 double 成为字符串?

c# - 内联属性初始化和尾随逗号