摘要:本文将带你了解C语言编程入门之c语言函数指针的用法和例子,希望本文对大家学C语言有所帮助。
本文将带你了解C语言编程入门之c语言函数指针的用法和例子,希望本文对大家学C语言有所帮助。
1.基本定义
c语言函数指针的定义形式:返回类型(*函数指针名称)(参数类型,参数类型,参数类型,…);
c++函数指针的定义形式:返回类型(类名称::*函数成员名称)(参数类型,参数类型,参数类型,….);
2.函数指针使用举例
2.1 C 函数指针使用举例
#include <stdio.h>
#include <stdlib.h>
int fun1()
{
printf("this is fun1 call\n");
return 1;
}
void fun2(int k, char c)
{
printf("this is fun2 call:%d %c\n", k, c);
}
int main()
{
int (*pfun1)() = NULL;
void (*pfun2)(int, char) = NULL;
int a,b;
pfun1 = fun1; //第一种赋值方法
a = pfun1(); //第一种调用方法(推荐)
printf("%d\n",a);
b = (*pfun1)();//第二种调用方法
printf("%d\n",b);
pfun2 = &fun2;//第二种赋值方法(推荐,因为和其他数据指针赋值方法一致)
pfun2(1,'a');
(*pfun2)(2,'b');
return 0;
}</stdlib.h></stdio.h>
2.2 CXX(C + +) 函数指针使用举例
#include <iostream>
using namespace std;
class test
{
public:
test()
{
cout<<"constructor"<<endl; char="" const="" double="" fun1="" fun2="" fun3="" int="" is="" pcon="&test.test;" pconst="&test::fun2;" pfun="&test::fun1;" pre="" pstatic="test::fun3;" return="" static="" test="" this="" void=""><h2>3.函数指针作为函数参数 C</h2><pre class="brush:java;">#include <stdio.h>
#include <stdlib.h>
void fun(int k, char c)
{
printf("this is fun2 call:%d %c\n", k, c);
}
void fun1(void (*pfun)(int, char), int a, char c)
{
pfun(a, c);
}
int main()
{
fun1(fun, 1, 'a');
return 0;
}
// c++ 的形式差不多</stdlib.h></stdio.h></pre>
<h2>4. 函数指针作为函数返回值</h2>
<h3>4.1 样本 C</h3>
<pre class="brush:java;">// c 形式
#include <stdio.h>
#include <stdlib.h>
void fun(int k, char c)
{
printf("this is fun2 call:%d %c\n", k, c);
}
//fun1 函数的参数为double,返回值为函数指针 void (*) (int, char)
void (*fun1(double d))(int, char)
{
printf("%f\n",d);
return fun;
}
int main()
{
void (*p)(int, char) = fun1(3.33);
p(1, 'a');
return 0;
}</stdlib.h></stdio.h></pre>
<h3>4.2 样本 CXX(C + +)</h3>
<pre class="brush:java;">//c++ 形式
#include <iostream>
using namespace std;
class test
{
public:
int fun(int a, char c)
{
cout<<"this is fun call:"<</a<<"></iostream></pre>
</endl;></iostream>
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号