int (*p)[4];与int a[4],*p=a;的区别
请问int (*p)[4];与int a[4],*p=a;的区别,以及它们各起什么作用?
[解决办法]
二维数组可以理解为“元素为数组的一维数组”,如:
int calendar[12][31];
声明了一个有着12个数组类型元素的数组,
它的每个数组类型元素又是一个有着31个整型元素的数组。
所以,如下是错误的:
int *p;
p = calendar;
下面的方式才是正确的:
int (*ap)[31]; /* 声明了ap是指向一个拥有31个整型元素的数组的指针 */
ap = calendar; /* ap指向calendar数组的第一个元素 */