1.指针数组:指针数组是数组,是一个存放指针的数组。
例:int *arr1[10] ;整型指针数组 char *arr2[4] ;字符指针数组 char **arr3[5] ;二级指针数组
2.数组指针:是指针。(数组的地址)。指向数组。给数组指针+1,指向所指向数组的大小。
例:int (*p)[10]整型数组指针。解释:p和*先结合,说明p是一个指针变量,然后指针指向是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。
注意:[ ]的优先级高于*号,所以必须加上()来保证p和*先结合。
3.函数指针:用来保存函数地址,该函数可以是函数名,也可以是对该函数取地址。
例:void (*pfun1)( );指向返回值为空的函数指针。解释:pfun1可以存放。pfun1先和*结合,说明pfun1是 指针, 指针指向的是一个函数, 指向的函数无参数,返回值类型为void。
void *pfun2();是一个函数
注意:()的优先级高于*
4.函数指针数组:把函数的地址存放到一个数组中,那这个数组就叫函数指针数组。
例:int (*parr1[10]) ( ); 解释:parr1先和[ ]结合,说明parr1是数组,数组的内容是int (*)( )类型的函数指针。
5.指向函数指针数组的指针:指向函数指针数组的指针是一个指针,指针指向的是一个数组,数组的元素都是函数指针。
例:void (*(*parr2)[10])( );