C语言函数指针嵌套函数指针的使用示例
时间: 2023-11-22 18:47:22 浏览: 142
函数指针是指向函数的指针变量,而函数指针嵌套则是指一个函数指针作为另一个函数的参数或返回值。下面是一个C语言函数指针嵌套函数指针的使用示例:
```c
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
int calc(int a, int b, int (*func)(int, int)) {
return func(a, b);
}
int main() {
int a = 10, b = 5;
int (*p)(int, int) = add;
printf("a + b = %d\n", calc(a, b, p));
p = sub;
printf("a - b = %d\n", calc(a, b, p));
return 0;
}
```
在上面的示例中,我们定义了两个函数`add`和`sub`,分别用于计算两个整数的加法和减法。然后我们定义了一个函数`calc`,它接受两个整数和一个函数指针作为参数,用于计算两个整数的加减法。最后在`main`函数中,我们定义了一个函数指针`p`,并将它指向`add`函数,然后调用`calc`函数计算两个整数的加法。接着我们将`p`指向`sub`函数,再次调用`calc`函数计算两个整数的减法。
相关问题
c语言函数指针代码示例
以下是一个简单的C语言函数指针示例,它定义了一个函数指针类型和两个函数,然后使用函数指针调用不同的函数。
```c
#include <stdio.h>
// 定义函数指针类型
typedef void (*FunctionPointer)(int);
// 函数1
void printNumber(int number) {
printf("The number is %d.\n", number);
}
// 函数2
void printSquare(int number) {
printf("The square of the number is %d.\n", number * number);
}
int main() {
int number = 5;
// 声明函数指针变量
FunctionPointer myFunctionPointer;
// 将函数指针变量赋值为函数1的地址
myFunctionPointer = &printNumber;
// 使用函数指针调用函数1
myFunctionPointer(number);
// 将函数指针变量赋值为函数2的地址
myFunctionPointer = &printSquare;
// 使用函数指针调用函数2
myFunctionPointer(number);
return 0;
}
```
输出:
```
The number is 5.
The square of the number is 25.
```
c语言函数指针赋值给指针示例
下面是一个简单的示例,展示如何将函数指针赋值给指针:
```c
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int main() {
int (*funcPtr)(int, int); // 声明一个函数指针
int result;
funcPtr = add; // 将函数指针赋值为 add 函数
result = (*funcPtr)(2, 3); // 调用 add 函数
printf("Result of add function: %d\n", result);
funcPtr = subtract; // 将函数指针赋值为 subtract 函数
result = (*funcPtr)(2, 3); // 调用 subtract 函数
printf("Result of subtract function: %d\n", result);
return 0;
}
```
输出:
```
Result of add function: 5
Result of subtract function: -1
```
在上面的示例中,我们首先声明了一个函数指针 `funcPtr`,它可以指向任何带有两个整数参数和整数返回值的函数。然后,我们将 `funcPtr` 分别赋值为 `add` 函数和 `subtract` 函数。在每个赋值之后,我们调用 `funcPtr` 指向的函数,并将结果存储在 `result` 变量中。最后,我们使用 `printf` 函数输出结果。
阅读全文