It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center
8年前关闭。
file 1:
int mango[100];

file 2:
extern int *mango;
...
/* some code that references mango[i] */

当两者都被访问为*(mango+i)时,为什么会出现错误?
如果char mango[5];则数组从mango位置开始,这样mango=&mango[0]。所以变量“mango”包含自己的地址还是数组的第一个字符?

最佳答案

如果定义变量a,例如:

char a[5];

然后定义了一个由五(5)个字符组成的数组。可以通过a[0]或简单地*a访问的第一个字符的地址被命名为“a”。数组也被称为“a”,因为数组是根据其第一个元素的地址命名的,正如程序员在数组声明中所给出的那样。
无法通过分配到a来更改a的地址。如果您试图写入:
a = NULL;

收到的错误应指示需要左值(赋值运算符左边可能出现的值)。

09-25 16:40