C语言的指针和数组

一、指针数组

指针数组可以说成是“指针的数组”,这个变量是一个数组,然后“指针”修饰这个数组,即这个数组中的所有元素都是指针类型的。通俗来讲就是:指针数组是数组,是一个存放指针的数组。


二、数组指针

数组指针可以说成是“数组的指针”,这个变量是一个指针,然后“数组”修饰这个指针,即这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。通俗来讲就是:数组指针是指针,是一个存放数组的指针。


三、函数指针

函数指针其实是指向函数的指针变量,本质上是一个指针变量。即用来保存函数的地址的变量。

值得注意的是:对于函数而言,函数名与去取地址函数名都是该函数的地址。调用函数时可以解引用,也可直接调用。


四、函数指针数组

把函数的地址存到一个数组中,那这个数组就叫函数指针数组。


五、指向函数指针数组的指针

指向函数指针数组的指针 是一个指针,而这个指针指向一个数组,数组的元素都是 函数指针。

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;
}

猜你喜欢

转载自blog.csdn.net/jgm20475/article/details/79704151