这两个一直很容易弄混,原因在于运算符的优先级不知道。
表示一个数组的[]和表示一个函数的()具有相同的优先级,这个优先级要高于间接运算符*的优先级。
小技巧区分:注意后面的两个字,比如指针数组,它首先是数组,然后里面的元素是指针
int * demo[10]; //这个便是具有10个元素的指针数组,数组元素中存放的是指向int类型的指针
int (* demo)[10]; //这个是指向数组的指针,它首先是一个具有10个int类型元素的数组,而demo是指向这个数组的指针
int * fun() //指针函数:返回值为指针的函数,返回值为 int *
int (* fun)() //函数指针:指向函数的指针,返回值为int