c语言中 函数指针要带参数嘛
时间: 2024-11-05 08:32:19 浏览: 16
在C语言中,并非所有的函数指针都需要携带参数。函数指针实际上是一个变量,它存储的是指向某个特定函数地址的值。如果你有一个固定返回类型和任意数量或类型的参数的函数,你可以创建一个接受该函数作为参数的函数指针。
例如,假设你有这样一个函数:
```c
void print(int x) {
printf("The value is %d\n", x);
}
```
你可以定义一个接受`print`函数的无参函数指针:
```c
void (*func_ptr)(int); // 定义一个接收整数并打印的函数指针
func_ptr = &print; // 将函数的地址赋给函数指针
(*func_ptr)(5); // 调用函数指针,传入参数5
```
如果`print`函数需要参数,那么函数指针也需要相应地声明来匹配。比如,如果你的`print`函数需要两个参数:
```c
void print(int x, char *str) {
printf("%d: %s\n", x, str);
}
// 对应的函数指针声明为接受两个参数
void (*func_ptr)(int, char *);
func_ptr = &print;
(*func_ptr)(5, "Hello");
```
阅读全文