关于函数指针简介

1: int (*fun)(int parame)  普通的函数指针声明

 

2: int (*fun[5])(int parame) 函数指针数组声明,相当于int (*(fun[5]))(int parame) ,首先fun[5]是5个元素的数组,然后看*(fun[5]),而且这个数组里的每个元素都是一个指针,可以假设f=fun[5] 变成了int (*f)(int parame)这样就变成了一个普通的函数指针声明,最后把fun[5]套进来,就相当于定义了5个函数指针数组,而每个元素(函数指针)指向一个带有int 参数,返回值是int 的函数.

 

3. int (*fun(int))(int parame) 这种类型的定义,同样道理,它相当于int (*(fun(int)))(int parame) ,可以假设f=fun(int) ,声明就变成了int (*f)(int parame),这就相当于普通的函数声明,此时f (即fun(int))指向了一个带有一个int 参数,返回值是int 的函数指针,再看f=fun(int),而fun(int)本身是一个函数,它的返回值是一个函数指针,即这个返回的函数指针指向了一个带有int 参数,返回值是int 的函数,也就是int f(int)这种形式的函数

你可能感兴趣的:(关于函数指针简介)