1.指针数组
形式:char *arr[4]
定义了一个arr数组,而数组里存放的每个元素的类型是一个指向字符/字符串的指针。
理解:char *arr[i] char *(arr[i])是一样的,因为[]优先级高于*
2.数组指针
形式:char (*arr)[4]
表示一个指针,并且指向“一个有4个char型元素的数组”
3.函数指针:
定义:函数指针是指向函数的指针变量。
形式:例:int (*str)(int x, int y);//指针str指向有x和y
两个参数的函数。
返回值类型: ( * 指针变量名) ([形参列表]);
注意:指向函数的指针变量没有++和--运算
4函数指针数组
形式:void test(char* str)
例:void (*arr[5])(char*)//arr[5]中存放的是指针,指向每个指向函数的指针,函数中的参数是char*,返回值为void型。
注意:本质是数组,数组里存放的是函数指针。
5.指向函数指针数组的指针
形式:void test(char* str)
例:void (*(*str)[5])(char*)=&test //取地址代表是指针
//str是一个指针,指向一个含有5个元素的数组,数组存放的每一个元素为函数指针。
注意:指向函数指针数组的指针本质为指针,这个指针指向一个函数指针数组,这个数组中的元素是函数指针,函数参数是char*,返回类型是void型。