int (*p)[10];
int a[10];
for (int i=0;i<10;i++)
{
a[i]=i;
}
p = &a;
在这个代码片段中,p
被声明为指向包含 10 个整数的数组的指针:
而 a
是一个包含 10 个整数的数组:
&a
表示数组a
的地址,且类型是int (*)[10]
,即指向一个包含 10 个整数的数组的指针。- 如果直接写
p = a;
,a
会被视为指向int
的指针,类型是int *
。这与p
的类型不匹配。
总结
因此,使用 p = &a;
可以确保类型匹配。&a
指向整个数组,而不是数组的第一个元素。这样可以正确赋值给 p
。