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。
