小编Max*_*Max的帖子

数组名称是C语言中的指针吗?

我知道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是标签还是其他东西?

c arrays pointers

5
推荐指数
1
解决办法
84
查看次数

标签 统计

arrays ×1

c ×1

pointers ×1