21xrx.com
2024-12-22 22:49:04 Sunday
登录
文章检索 我的文章 写文章
C++函数指针的定义及用法介绍
2023-07-05 02:16:59 深夜i     --     --
C++ 函数指针 定义 用法 介绍

C++函数指针是一种指向函数的指针变量。它存储着函数的地址,可以用来调用该函数并将其作为参数传递给其他函数。在C++中,函数指针的定义方式如下:


返回类型 (*指针变量名)(参数列表)

其中,返回类型表示函数的返回值类型,指针变量名是函数指针的名称,参数列表是函数的参数类型及数量。例如,定义一个返回类型为int,参数列表为int类型的函数指针可以写作:


int (*pFunc)(int);

使用时,可以将函数地址赋值给函数指针变量:


int add(int a, int b) {

  return a + b;

}

int (*pFunc)(int) = add;  //将函数add的地址赋值给函数指针pFunc

此时,可以通过函数指针变量调用该函数:


int result = pFunc(2, 3);  //等价于result = add(2, 3);

函数指针可以作为函数的参数传递给其他函数,也可以作为函数的返回值返回。它常用于回调函数和动态链接库中的函数调用等场景。

例如,定义一个函数,计算由n个数字组成的数组的平均值,并在完成计算后调用回调函数:


void calculateAverage(int *array, int n, double (*callback)(double)) {

  double sum = 0;

  for (int i = 0; i < n; i++) {

    sum += array[i];

  }

  double average = sum / n;

  callback(average);

}

其中,callback为回调函数的函数指针。在实际调用时,可以使用lambda表达式作为回调函数:


int main() {

  int array[] = 2;

  calculateAverage(array, 5, [](double average)

    std::cout << "The average is: " << average << std::endl;

  );

  return 0;

}

以上代码将输出: The average is: 3。

总之,C++函数指针是一种非常有用的工具,能够扩展程序的灵活性和可读性。对于初学者来说,理解其定义和用法是必不可少的。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复