<分区>
初学C编程,有一个问题困扰着我。 让我们看下面的一段代码:
int main()
{
int arr[3]={1,2,3};
printf("%d\n", arr);
printf("%d", &arr);
}
如果我运行这段代码,它会为 arr 和 &arr 给出相同的结果。但是为什么要arr=&arr? 我已经看到了很多关于这个话题的答案,但我没有一个是清楚的。简而言之,人们同意数组变量保存数组第一个元素的地址,例如 arr 保存 arr[0] 的地址,比如 arr= 4340。那么变量 arr 必须存储在内存中的某个位置并且&arr 是存储值 4340 的存储单元的地址。如果 &arr = arr 那么结果是 4340 存储在地址 4340。但是地址 4340 处的值是数组第一个元素的值,所以它应该是1??? 我现在很困惑,非常感谢您的帮助。