二维数组的指针和函数的指针数组
参加面试时遇到了这两个问题,时间久了,记得不是很清楚,上网查询一些定义记录下来:
int a[3][2]; 数组a是3行2列的二维数组,那么如何表示这个二维数组的指针呢?
int (*p)[2]就是一个只有2列的二维数组的指针,p = a 就是将数组a的地址赋值给二维数组指针p;
函数指针:
函数指针包含函数在内存中的地址。数组名实际上就是数组的第一个元素在内存中的地址,类似地,函数名实际上也是执行这个函数任务的代码在内存中的起始地址
函数指针数组
函数指针的一个用法出现在菜单驱动系统中。例如程序可以提示用户输入一个整数值来选择菜单中的一个选项。用户的选择可以做函数指针数组的下标,而数组中的指针可以用来调用函数。
void (*f[3])(int)={function1,function2,function3};
定义了一个没有返回类型,只有一个int类型形参到函数指针数组。