C语言定义一个函数,该函数的参数是函数指针和数组,同时函数指针的参数也是函数指针和数组,举例说明
时间: 2024-01-29 12:09:49 浏览: 98
C语言中可以定义一个函数,该函数的参数是函数指针和数组,同时函数指针的参数也是函数指针和数组。下面是一个示例:
```c
#include <stdio.h>
// 定义一个函数指针类型
typedef void (*FuncPtr)(int);
// 定义一个函数,参数是函数指针和数组
void func(FuncPtr ptr, int arr[], int size) {
for (int i = 0; i < size; i++) {
ptr(arr[i]);
}
}
// 定义一个函数,参数是函数指针和数组
void printNum(int num) {
printf("%d ", num);
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
// 调用函数,传入函数指针和数组
func(printNum, arr, size);
return 0;
}
```
在上面的示例中,我们首先定义了一个函数指针类型`FuncPtr`,然后定义了一个函数`func`,该函数的参数是函数指针`ptr`、数组`arr`和数组的大小`size`。在`func`函数中,我们通过循环遍历数组,并通过函数指针`ptr`调用传入的函数。最后,在`main`函数中,我们定义了一个整型数组`arr`,并计算出数组的大小,然后调用`func`函数,传入函数指针`printNum`和数组`arr`。
运行上述代码,输出结果为:
```
1 2 3 4 5
```
阅读全文