char (*a) [N]

char *a[]表示的是数组a[]是一个指向char的指针类型数组,相当于a[]里面的每一个元素都实际值都是一个指向字符串的指针(即存储某个字符串的首地址)

后面这个你应该要问的是char (*a)[]吧,不然的话就和第一个一样了
char (*a) [N]表示的是指向一个元素为N的字符串数组的指针,说白了就是一个数组指针(指向数组的指针)。这个和函数指针有点像 int (*p) (int,int),表示指向返回值为int,并且含有2个int变量的函数

int tring(const void* _a,const void* _b)
{
char* a=(char*)_a;
char* b=(char*)_b;
return strcmp(a,b);
}
char *a = (char *)_a;  // 表示将变量_a进行强制类型转换为char *类型

原文地址:https://www.cnblogs.com/yuandongtao1989/p/6694435.html