首页 > 程序开发 > 软件开发 > C语言 >

c语言函数指针的用法和例子

2018-07-19

c语言函数指针的用法和例子。1 基本定义:c语言函数指针的定义形式:返回类型(*函数指针名称)(参数类型,参数类型,参数类型,…);c++函数指针的定义形式:返回类型(类名称::*函数成员名称)(参数类型,参数类型,参数类型,… );

1.基本定义

c语言函数指针的定义形式:返回类型(*函数指针名称)(参数类型,参数类型,参数类型,…);

c++函数指针的定义形式:返回类型(类名称::*函数成员名称)(参数类型,参数类型,参数类型,….);

2.函数指针使用举例

2.1 C 函数指针使用举例

#include 
#include 

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

2.2 CXX(C + +) 函数指针使用举例

#include 
using namespace std;

class test
{
public:
 test()
 {
  cout<<"constructor"<

3.函数指针作为函数参数 C

#include 
#include 

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, &#39;a&#39;);
 return 0;
}
// c++ 的形式差不多

4. 函数指针作为函数返回值

4.1 样本 C

// c 形式
#include 
#include 

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, &#39;a&#39;);
 return 0;
}

4.2 样本 CXX(C + +)

//c++ 形式
#include 
using namespace std;

class test
{
public:
 int fun(int a, char c)
 {
  cout<<"this is fun call:"<
相关文章
最新文章
热点推荐