一、优先级关系:
我们在搞清指针函数和函数指针之前,首先需要了解“*”、“[]” 、“()”三者之间优先级的关系。
这里“*”是取值运算符,“[]”是数组下标运算符,“()”是括号运算符。
*C语言中优先级关系为:() > [ ] > *;
结合性:()、[ ] 自左向右,* 为单目运算符。
二、指针函数和函数指针的概念:
1、指针函数:本质上是一个函数,其返回值为一个指针。
声明格式:返回值类型* 函数名(参数列表);
语法实例:int *func(int a,int b);
分析:按照优先级,func(int a,int b))先是一个函数,然后int *表明返回值是一个指针。
2、函数指针:本质上是一个指针,这个指针指向一个函数的首地址。
声明格式:函数返回值类型 (*指针名)(函数参数列表);
语法实例:int (*prt)(int a,int b);
分析:按照优先级(*prt) (int a,int b); 其中()结合性为自左向右则先是指针,指针指向的是函数,最后int表明返回值为整型。
三、实际应用:
1、指针函数:一般用于函数返回值为一个指针的场景
运行结果:
2、函数指针:可以用于c语言结构体中指向一个函数:
运行结果:
以上就是本次讨论主要内容,欢迎沟通交流~