#include <stdio.h>

// int main()
// {
//     int a = 10;
//     int* pa = &a;
//     char ch = 'w';
//     char* pch = &ch;
    
//     double* d[5];
//     double* (*pd)[5] = &d; //pd 是一个数组值
    
//     int arr[10] = {1,2,3,4,5};
//     int (*parr)[10] =  &arr;//取出的是数组地址
//     //parr 就是是个数组指针,其中存放的是数组地址
//     return 0;
// }


// int main()
// {
//     int arr[10] = {0};
//     printf("%p\n", arr);
//     printf("%p\n", &arr);
//     return 0;
// }

//数组名是数组是首元素地址
//下面两个例外:
//1. sizeof中 数组名计算整个数组
//2. &数组名 表示整个数组

// int main()//不好用
// {
//     int arr[10] = {0};
//     int (*pa)[10] = &arr;//数指针
//     int i = 0;
//     for (i = 0; i < 10; i++)
//     {
//         printf("%d ", *((*pa)+i));
        
//     }

//     return 0;
// }

void print2(int (*p)[5], int r, int c)
{
     int i = 0;
     int j = 0;
     for ( i = 0; i < 3; i++)
     {
         for (j = 0; j < 5; j++)
         {
             printf("%d ", *(*(p+i)+j));
         }
         printf("\n");
     }
}
int main()
{
    
    int arr[3][5] = 
    {
        {1,2,3,4,5},
        {6,7,8,9,10},
        {10,2,4,5,6}
    }
    print2(arr, 3, 5);
    return 0;
}