Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
以下代码
a[10] == 10[a]
结果似乎true是 C 语言
true
C编译器如何将它们视为相同的?
编译器看到如下:
a[10] == *(a + 10) == *(10 + a) == 10[a]
检查这个以获得更好的解释。
a[10] 表示:“从内存地址 10 开始,添加 a 并引用结果位置” 10[a] 表示:“从内存地址 a 开始,添加 10 并引用结果位置”
由于 a + 10 与 10 + a 相同,因此两个表达式将引用相同的内存位置。