函数指针的用法

  • 格式:doc
  • 大小:12.75 KB
  • 文档页数:3

- 1 - 函数指针的用法

函数指针是一种指向函数的指针变量,它可以用来间接调用函数。在C语言中,函数指针通常用于回调函数、动态函数调用等领域。以下是函数指针的用法:

1. 声明函数指针

函数指针的声明格式为:返回类型 (*指针变量名)(参数类型列表)。例如,int (*p)(int, int) 表示 p 是一个指向返回类型为 int,参数类型为 int, int 的函数指针。

2. 定义函数指针

定义函数指针时,需要将其指向具体的函数。例如:

int add(int a, int b) {

return a + b;

}

int (*p)(int, int) = add;

上述代码定义了一个指针变量 p,它指向函数 add。这样,我们就可以通过 p 间接调用 add 函数,例如 p(1, 2)。

3. 函数指针作为参数

函数指针还可以作为函数的参数。这种用法通常用于回调函数。例如:

void forEach(int* arr, int length, int (*callback)(int))

{

for (int i = 0; i < length; i++) { - 2 - arr[i] = callback(arr[i]);

}

}

上述代码定义了一个函数 forEach,它接受一个 int 类型的数组和一个函数指针 callback,用于对数组中的每个元素进行操作。其中,callback 函数的返回值是 int。这样,我们就可以通过

forEach 函数调用不同的 callback 函数,实现不同的操作。

4. 函数指针数组

函数指针还可以放在数组中,形成函数指针数组。例如:

int add(int a, int b) {

return a + b;

}

int sub(int a, int b) {

return a - b;

}

int (*funcs[2])(int, int) = {add, sub};

上述代码定义了一个名为 funcs 的函数指针数组,它包含两个元素,分别指向 add 函数和 sub 函数。这样,我们就可以通过调用

funcs[0](1, 2) 和 funcs[1](1, 2) 实现不同的计算。

总之,函数指针是一种强大的工具,可以使程序更加灵活和可扩展。但是,在使用函数指针时,需要注意函数的返回值和参数类型,以免出现类型不匹配的错误。 - 3 -