我知道C语言中的指针是一个保存地址的变量。例如:
int myVar;
int *p;
p = &myVar;
printf("%p\n", p);
printf("%p\n", &p);
Run Code Online (Sandbox Code Playgroud)
输出将是两个不同的地址,第一个是myVar的地址,第二个是指针本身的地址,这意味着指针也是变量,并且在内存中有一个地址(如果我错了,请更正我)
但是我的问题是关于数组的,例如,我们有以下代码:
int myArray[10];
Run Code Online (Sandbox Code Playgroud)
所以在这里我认为myArray也是一个指针,它保存着myArray的起始地址,在本例中是myArray [0],所以当我打印myArray [0]和myArray的地址时,我得到相同的结果:
printf("%p\n", &myArray[0]);
printf("%p\n", myArray);
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试打印myArray本身的地址时,这对我来说是令人困惑的部分:
printf("%p\n", &myArray);
Run Code Online (Sandbox Code Playgroud)
在这里,我得到了与我希望获得另一个地址(如指针)相同的结果。myArray是标签还是其他东西?