Hello! 欢迎来到小浪云!


指针函数和函数指针的区别


avatar
小浪云 2024-12-09 28

指针函数指向函数地址,而函数指针指向函数本身。(1)指针函数需要解引用才能调用,而函数指针可以直接调用。(2)这两种技术在实现回调函数、动态绑定和高级编程模式中发挥重要作用。

指针函数和函数指针的区别

指针函数与函数指针

指针函数和函数指针虽然听起来相似,但它们在计算机编程中有着不同的含义和用途。

指针函数

  • 指针函数是指向函数地址的指针。
  • 它允许将函数地址存储在变量或数据结构中。
  • 可以通过解引用指针来调用函数。

例如:

int add(int a, int b) {     return a + b; }  int main() {     int (*func_ptr)(int, int);  // 声明一个指向函数的指针     func_ptr = add;             // 将 add 函数的地址赋值给指针     int result = func_ptr(2, 3); // 调用指向的函数     return 0; }

函数指针

  • 函数指针是一种特殊类型的指针,它指向函数的代码本身,而不是其地址。
  • 它允许将函数视为对象,以便将其传递给其他函数或存储在数据结构中。
  • 可以直接调用函数指针,无需解引用。

例如:

typedef int (*func_ptr)(int, int);  // 定义函数指针类型  func_ptr add = &add;  // 将 add 函数的地址赋值给函数指针  int result = add(2, 3); // 直接调用函数指针

总结

指针函数指向函数地址,而函数指针指向函数本身。指针函数需要解引用才能调用,而函数指针可以直接调用。这两种技术在实现回调函数、动态绑定和高级编程模式中发挥重要作用。

相关阅读