int i; //定义整型变量i
int *p; //p为指向整型数据的指针变量
int a[n];//定义整型数组a,它有n个元素,步长为2
int *p[n];//定义指针数组p,它由n个指向整型数据的指针元素组成,步长为2(或4)
int (*p)[n];//p为指向含n个元素的一维数组的指针变量,步长为2*n(或4*n)
上面两个我经常搞混,前者是指针数组,中心词是数组;后者是数组指针,中心词是指针(因为小括号的优先级更高,所以小括号里面的是中心词),记住了
int f();//f为返回整型的函数值的函数
int *p();//p为返回一个指针的函数,该指针指向整型数据
int (*p)();//p为指向函数的指针,该函数返回一个整型值
int **p();//p是一个指针变量,它指向一个指向整型数据的指针变量