函数指针 写法
时间: 2023-06-29 15:17:23 浏览: 105
指向函数的指针
函数指针在C语言中是一个指向函数的指针变量,它可以用来传递函数或在程序运行时动态调用函数。函数指针的声明方式如下:
```c
return_type (*function_name)(argument_type1, argument_type2, ...);
```
其中,`return_type`是函数返回值类型,`function_name`是指针变量名,`argument_type1`、`argument_type2`等是函数参数类型。
下面是一个简单的例子,演示如何声明和使用一个函数指针:
```c
#include <stdio.h>
// 声明一个函数指针类型
typedef void (*func_ptr)(int);
// 定义一个函数,用于接受函数指针参数
void call_func(func_ptr ptr)
{
printf("Calling function...\n");
ptr(123); // 调用函数指针所指向的函数
}
// 定义一个函数,它将被函数指针所指向
void my_func(int value)
{
printf("Value is: %d\n", value);
}
int main()
{
// 声明一个函数指针变量并初始化
func_ptr ptr = &my_func;
// 调用函数指针所指向的函数
call_func(ptr);
return 0;
}
```
在上面的例子中,首先声明了一个函数指针类型`func_ptr`,它可以指向一个没有返回值、参数为整型的函数。然后定义了两个函数,一个是`call_func`函数,它接受一个函数指针参数,用于调用函数指针所指向的函数,另一个是`my_func`函数,它将被函数指针`ptr`所指向。在`main`函数中,定义了一个函数指针变量`ptr`并初始化为`my_func`函数的地址,然后调用`call_func`函数,并将`ptr`作为参数传递给它。运行程序,输出结果如下:
```
Calling function...
Value is: 123
```
可以看到,程序成功调用了函数指针所指向的函数,并将参数值传递给了它。
阅读全文