C中的chars [4]和4 [chars]是否相同? 为什么?

这个问题在这里已经有了答案:

  • 对于数组,为什么会出现[5] == 5 [a]? 17个答案

  • 在原始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

    上一篇: Is chars[4] and 4[chars] the same in C? Why?

    下一篇: Why is this snippet compilable in C?