数组指针和指针数组的问题

求解答数组指针和指针数组的问题!

char* (p)[5] = &array; 特别是这个 两个 *和一个[] 怎么去认知和理解呢?


#include

int main()
{
    char* array[5] = {"fishc","five","star","good","wow"};
    //指针数组  里面每一个元素都是指针 
    
    char* (*p)[5] =  &array;
    // 定义了一个数组指针 指向的是array这个数组地址??? 
    
    int i,j;
    
    for(i = 0; i< 5;i++)
    {
        for(j =0; (*p)[i][j] !='\0'; j++ )
        
        {
            printf("%c",(*p)[i][j] );
        }
        printf("\n");
    }


    return 0;
}

array本身是个指针数组,里面每个指针指向一个字符串常量
而如果需要一个指针数组再去指向array,肯定是要比它高一级的指针,也就是二级指针,所以会有2个星
如果2个星一下想不明白,你先从指针数组如何指向一个int数组开始想
这就好比儿子的学习需要爸爸来监督,那谁来监督爸爸呢,就需要爸爸的爸爸