完整代码如下
#include<stdio.h>
main()
{
int a[3][5],i,j,(*p)[5]; //这里定义的(*p)【5】是什么意思?
p=&a[0];
printf("请输入15个数值:\n");
for(i=0;i<3;i++) /*控制二维数组的行数*/
for(j=0;j<5;j++) /*控制二维数组的列数*/
scanf("%d",(*(p+i))+j); /*为二维数组中的元素赋值*/
p=a+2; /*p为第一个元素的地址*/
printf("第三行中的元素为:\n");
for(j=0;j<5;j++)
printf("%5d",*((*p)+j)); /*输出二维数组中的元素*/
printf("\n");
return 0;
}
指向数组的一个指针 用的话一般都是二维数组
这个可以使其行数改变 行是不确定的 而列的大小只能是5
int (*p)[5]; 定义了一个指针指向了一个数组,这个数组的元素是int 类型,并且有5个元素,参考:http://www.cnblogs.com/Romi/archive/2012/01/10/2317898.html
定义了一个一维数组,数组名是p,有5个元素,元素的类型是int* (整型指针)
定义了类型为int 指针的数组,长度为5
int(*P)[5],相当于一个数组,只不过是指针指向的数组!
指针数组和数组指针的关系,可以参考参考我的博客http://blog.csdn.net/mikeoperfect/article/details/72025335
int (*p)[5] ; p是一个指针 指向一个数组 数组有5个元素 每个元素类型是int型