我在SO上看到了很多这个问题.也许没有那么多的话......但是一次又一次地存在关于数组如何与指针不同的混淆.所以我想我会花一点时间来问这个问题.
出于本Q&A的目的,我们将假设一个32位系统,并且已声明以下内容:
char * ptr = "hello";
char arr[10] = "hello";
int iarr[10] = {0};
Run Code Online (Sandbox Code Playgroud)
这是一个问题列表,可以推测我在SO上看到的困惑.当我看到新的问题时,我会添加到我的问答清单中(其他人也可以随意,如果你发现任何错误,请纠正我!)
*(ptr)和*(arr),或ptr[0]和arr[0]给予同样的事情,为什么呢?arr和&arr同样的价值?arr+1vs &arr+1?