C中的chars [4]和4 [chars]是否相同? 为什么?
这个问题在这里已经有了答案:
在原始C语言中, []
符号只是一个指针数学帮助器。 在[]
之前,你需要查找ptr
指向的块中的第四个字符,如:
*(ptr+4)
然后,他们介绍了一个看起来更好的捷径:
ptr[4]
哪一个转换为较早的表达。 但是,如果你这样写:
4[ptr]
这将转化为:
*(4+ptr)
这确实是一回事。
因为[b]与*(a + b)完全相同,并且+是整数。
chars[4]
是*(chars+4)
, 4[chars]
是*(4+chars)
http://c-faq.com/aryptr/joke.html试试这个来测试编译:http://codepad.org/
链接地址: http://www.djcxy.com/p/86721.html