#include <stdio.h>
#include <stdlib.h>
typedef int (*Callback)(int);
void squareArray(int* arr, int length, Callback cb) {
for (int i = 0; i < length; i++) {
int result = cb(arr[i]);
printf("%d ", result);
}
}
int square(int x) {
return x * x;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int length = sizeof(arr) / sizeof(int);
printf("Original array: ");
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
printf("\nSquared array: ");
squareArray(arr, length, square);
return 0;
}
/*
在上面的示例中,squareArray 函数接受三个参数:一个整数数组、数组的长度和一个回调函数指针 cb。
squareArray 函数将遍历整个数组,并对每个元素调用 cb 函数进行处理。
在本例中,square 函数被传递为回调函数,用于计算数组元素的平方。squareArray 函数会将计算结果打印到控制台上。
在 main 函数中,我们首先定义了一个包含整数的数组,并打印了该数组的原始值。
然后,我们调用 squareArray 函数,并将 square 函数作为回调函数传递给它,以获得平方后的值。最后,我们将平方后的值打印到控制台上
*/