指针数组
指针数组是数组每一个元素均为指针的数组,其本质为数组。
数组指针
数组指针是指向数组首元素的地址的指针,其本质为指针(这个指针存放的是数组首地址的地址,相当于2级指针,这个指针不可移动)。
函数指针
函数指针是指向函数的指针变量,即本质是一个指针变量。
指针函数
指针函数是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针
首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。
函数指针数组
函数指针数组是数组,是存放函数指针的数组
首先说明是一个数组:数组名[],其次,要说明其元素的数据类型指针:*数组名[],再次,要明确这每一个数组元素是指向函数入口地址的指针:函数返回值类型 (*数组名[])().
请注意,这里为什么要把“*数组名[]”用括号扩起来呢?因为圆括号和数组说明符的优先级是等同的,如果不用圆括号把指针数组说明 表达式扩起来,根据圆括号和方括号的结合方向,那么 *数组名[]() 说明的是什么呢?是元素返回值类型为指针的函数数组。有这样的函数数祖吗?不知道。所以必须括起来,以保证数组的每一个元素是指针。
指向函数指针数组的指针
指向函数指针数组的指针是指针,是指向存放函数指针的数组的指针