指向 c 中函数的指针
最编程
2024-04-22 15:53:45
...
一个函数在编译时被分配给一个入口地址。这个函数的入口地址就被称为函数指针。
#include<stdio.h>
#include<iostream>
int max(int, int);
int main() {
int (*p)(int,int);
int a, b, c;
p = max;
printf("请输入a,b的值,以空格隔开:n");
scanf_s("%d %d", &a, &b);
c = (*p)(a, b);
printf("a=%d,b=%d,max=%dn", a, b, c);
system("pause");
return 0;
}
int max(int a, int b) {
if (a >= b) {
return a;
}
else
{
return b;
}
}
用指向函数的指针作函数参数:
#include<stdio.h>
#include<iostream>
int max(int, int);
int min(int, int);
int add(int, int);
int process(int a, int b, int(*func)(int a, int b));
int main() {
int a, b;
printf("请输入a,b的值,以空格隔开:n");
scanf_s("%d %d", &a, &b);
printf("a=%d,b=%d,max=%dn", a, b, process(a,b,max));
printf("a=%d,b=%d,min=%dn", a, b, process(a, b, min));
printf("a=%d,b=%d,add=%dn", a, b, process(a, b, add));
system("pause");
return 0;
}
int max(int a, int b) {
if (a >= b) {
return a;
}
else
{
return b;
}
}
int min(int a, int b) {
if (a >= b) {
return b;
}
else
{
return a;
}
}
int add(int a, int b) {
return a + b;
}
int process(int a, int b, int(*func)(int a,int b)) {
return (*func)(a, b);
}
输出:
上一篇: c语言很难学吗
下一篇: C 语言系列] 基础语法案例研究(初级)
推荐阅读
-
[备忘录] C 中的 nan 和 inf
-
C++STL 开发复习与总结(六): 6. C++ 语言输入/输出流 输入/输出格式的定义 控制-2-1 枚举常量(在 ios 类中)
-
用一篇文章学习 Kotlin 中的构造函数
-
Java 中的构造函数(构造方法
-
c盘中的temp可以删除吗? appdata\local\temp 可以删除吗?
-
一起了解 C++ 中的删除和擦除!
-
UCOS 中的 OSStatInit 函数
-
最简单易懂的 C 语言开发环境构建教程,分分钟教你如何在 Windows 中运行第一个 Hello World 程序!
-
深入研究 C 语言中的函数指针和左右规则
-
c 语言学习指针 - 几个概念的指针