【发布时间】:2022-11-25 13:12:11
【问题描述】:
通过在我的电脑上运行这个程序,我得到了相同的地址。我是针对array 和&array[0] 的情况,我知道array 的名称指向array 中第一项的地址。而且两者都是一样的。
但是我无法了解为什么array 和&array 的名称指向同一个地址。我想到的是,它将打印存储数组中第一项地址的指针的地址。
代码
#include <stdio.h>
int main()
{
char arr[3];
printf("array = %p\n", arr);
printf("&array[0] = %p\n", &arr[0]);
printf("&array = %p\n", &arr);
return 0;
}
输出
array = 0061FF1D
&array[0] = 0061FF1D
&array = 0061FF1D
【问题讨论】:
-
数组在 C 中很特殊。当我说“特殊”时,我的意思是贬义的。你只需要学习细节。
标签: arrays c pointers memory-address