一、指针数组
指针数组可以说成是“指针的数组”,这个变量是一个数组,然后“指针”修饰这个数组,即这个数组中的所有元素都是指针类型的。通俗来讲就是:指针数组是数组,是一个存放指针的数组。
二、数组指针
数组指针可以说成是“数组的指针”,这个变量是一个指针,然后“数组”修饰这个指针,即这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。通俗来讲就是:数组指针是指针,是一个存放数组的指针。
三、函数指针
函数指针其实是指向函数的指针变量,本质上是一个指针变量。即用来保存函数的地址的变量。
值得注意的是:对于函数而言,函数名与去取地址函数名都是该函数的地址。调用函数时可以解引用,也可直接调用。
四、函数指针数组
把函数的地址存到一个数组中,那这个数组就叫函数指针数组。
五、指向函数指针数组的指针
指向函数指针数组的指针 是一个指针,而这个指针指向一个数组,数组的元素都是 函数指针。
void test(const char*str)
{
printf("%s\n", str);
}
int main()
{
//函数指针pfun
void(*fun)(const char*) = test;
//函数指针的数组pfunArr
void(*pfunArr[5])(const char*str);
pfunArr[0] = test;
//指向函数指针数组pfunArr的指针ppfunArr
void((*ppfunArr)[10])(const char*) = &pfunArr;
system("pause");
return 0;
}