int (*p)[5]是什么意思啊?

完整代码如下

 #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型