C语言中,我们知道,指针变量一种特殊的变量,专门用来存放其它变量的地址。因此,指针也可以说就是地址。但是,需要注意的是:什么类型的变量应该存放在什么类型的指针变量中。接下来我们对各类指针做一个讲解,希望能够帮到大家。分别有:
指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针
1.指针数组
指针数组强调的是数组,并且数组元素是指针类型
例:int *arr[5]//arr是一个数组,数组元素是指针(int*)
2.数组指针
数组指针强调的是指针,并且这个指针指向一个数组,即指针变量存放的是数组地址
例:int (*arr)[5]//arr是一个指针,并且指向一个含有5个整型元素的数组
3.函数指针
函数指针强调指针,并且这个指针指向一个函数,即指针变量保存的是函数的地址
例:void test(char* str);
void (*p)(char*)//p是一个指针,并且指向一个函数,这个函数参数是char*,返回类型是void型
4.函数指针数组
函数指针数组强调数组,数组元素是函数指针
例:void test(char* str);
void (*p[5])(char*)//p是一个数组,有五个元素,每个元素是函数指针,这些指针指向的函数参数是char*,
返回类型是void型
5.指向函数指针数组的指针
指向函数指针数组的指针强调指针,这个指针指向一个函数指针数组,这个数组中的元素是函数指针
例:void test(char* str)
void (*(*pfun)[5])(char*)=&test
//pfun是一个指针,指向一个含有5个元素的数组,数组元素为函数指针,
这个函数参数是char*,返回类型是void型