【发布时间】:2020-05-23 22:19:29
【问题描述】:
假设这个数组:
int arr[5] = { 1, 2, 3, 4, 5 };
这里arr 有两个用途 - 它是数组的名称,它充当指向数组中第一个元素的指针,因此默认情况下arr 等于&arr[0]。
我的问题是,&arr 呢?这也和上面一样吗?
【问题讨论】:
-
是的,三个的值都是一样的。
&arr[0]的类型和 pointerarrdecaying 的类型相同 (int *)。但是&arr的类型不同(int (*)[5])。 -
类型是什么?
-
查看更新的评论
-
所以
&arr是pointer to the whole array而不是它的第一个元素? -
是的。它是一个 指向 5 个整数数组的指针
标签: c arrays pointers sizeof implicit-conversion