Is chars[4] and 4[chars] the same in C? Why?
本问题已经有最佳答案,请猛点这里访问。
我读过这个但不相信:)我这里没有编译器可以测试。
在raw c中,
1 | *(ptr+4) |
然后,他们引入了一条看起来更好的捷径:
1 | ptr[4] |
号
它转换为早期的表达。但是,如果你想这样写:
1 | 4[ptr] |
这将转化为:
1 | *(4+ptr) |
。
这确实是一回事。
因为a[b]与*(a+b)完全相同,+是交换的。
http://c-faq.com/aryptr/joke.html试着测试编译:http://codepad.org/