指针指向有关问题。哪位高手来解释下为什么会出错说明原因

指针指向问题。。谁来解释下为什么会出错说明原因#includestdio.hvoid main(){char *a[4]{Pascal,C la

指针指向问题。。谁来解释下为什么会出错说明原因
#include<stdio.h>
void main()
{char *a[4]={"Pascal","C language","dBase","Coble"};
  char (**p)[4];
  int j;
  p=a+3;
  for(j=3;j>=0;j--)printf("%s\n",*(p--));
}


为什么会出错那个来解释下

[解决办法]
char (**p)[4]; 定义一个指针p ,指向一个指针 ,这个指针指向char [4]类型的数组



char *a[4]={"Pascal","C language","dBase","Coble"};
定义一个数组 每个元素是指向char类型的指针

char **p
p是一个指针 ,指向char类型的指针