有大神可以解析一下区别是啥嘛

int*p[n]和int(*p)[n]有什么区别呢

这里其实是运算符的优先级顺序问题。

int *p[n],首先是[]运算符,然后才是指针类型标识符*,你可以理解为先定义一个数组,然后把数组中的元素都变成了指针,所以这是一个指针数组,数组中的每个元素都是指针

int (*p)[n],首先是括号运算符,你可以理解为先定义一个指针,且这个指针自带n个小指针,可以理解为二维数组第二维的大小,此时p称为行指针,p只能赋行指针地址,例如int a[2][2],p = a合法,p = a[0]不合法

参考这个https://blog.csdn.net/sudazf/article/details/8661511