关于指向数组的指针

来源:百度知道 编辑:UC知道 时间:2024/05/25 11:11:42
如果 int (*p)[5];
那么怎么访问数组中的每个元素,是(*p)[0],(*p)[1]....?
每个个之间实际相隔四个字节?

(*p)[0],(*p)[1]....对的
是4个字节
可以测试的如下:
#include<stdio.h>
main()
{
int (*p)[5],d;
d=sizeof((*p)[0]);
printf("%d\n",d);
return 0;
}

运行结果:
4
Press any key to continue

这相当于二位数组p【】【】

int (*p)[5]; 其实可以看作访问列的!!你要访问每个元素就如
#include <stdio.h>

int main()
{
int i, j;
int a[2][5] = { {1, 2, 3, 4, 5},
{6, 7, 8, 9, 10}
};
int (*p)[5] = a;

for ( i = 0; i < 2; ++i )
{
for ( j = 0; j < 5; ++j )
printf ("%d\n", *(*(p+i)+j));
}

getchar();
return 0;
}