int maxValue(int x, int y);
int minValue(int x, int y);
int sumValue(int x, int y);
int maxValue(int x, int y) {
return x > y ? x : y;
}
int minValue(int x, int y) {
return x < y ? x : y;
}
//函数类型: int (int x, int y)
int sumValue(int x, int y) {
return x + y;
}
//如果没有参数, 定义时括号必不可少
void printHello() {
printf("Hello");
}
int main(int argc, const char * argv[])
{
//函数指针: 指向函数的指针变量
//函数使用的三个部分
//1 函数的声明(没有函数体)
//2 函数的实现(函数返回值, 函数名, 形参列表, 函数体)
//3 函数的调用(函数名(实参列表))
int max = maxValue(10, 5);
int min = minValue(10, 5);
int sum = sumValue(10, 5);
printf("max = %d min = %d sum = %d\n", max, min, sum);
//函数的声明: int minValue(int x, int y);
//函数指针定义
//定义一个函数指针指向minValue函数
//p函数指针变量名 NULL是函数指针变量的初值 int(*)(int x, int y)是函数指针类型
//定义了一个函数指针名字为p, 指向了一个返回值为int类型, 并且有两个整型参数的函数
int (*p)(int x, int y) = NULL;
//指针变量赋值, 函数地址
//函数名代表函数的首地址
p = minValue;//p指向minValue函数
//当把函数的地址赋给指针变量p之后, p就可以当做函数名使用
int min2 = p(10, 5);
int (*p2)(int x, int y) = NULL;
int (*p3)(int x, int y) = NULL;
p2 = maxValue;
p3 = sumValue;
int max2 = p2(10, 5);
int sum2 = p3(10, 5);
printf("max2 = %d min2 = %d sum2 = %d\n", max2, min2, sum2);
void (*p4)() = NULL;
p4 = printHello;
p4();
相关推荐
01 底盘制动产品之轮速传感器
轮速传感器是用来测量汽车车轮转速的传感器。对于现代汽车而言,轮速信息是必不可少的,汽车动态控制系统(VDC)、汽车电子稳定程序(ESP)、防抱死制动系统(ABS)、自动变速器的控制系统等都需要轮速信息。
函数指针和函数指针数组
函数指针:指向函数的指针。 函数指针数组:一个数组里面存的类型是函数指针。 一、函数指针的声明和调用 1.指针声明: 函数指针顾名思义就是一个指向函数的指针。 int Add(int x,int y) { return x+y; } char* Sub(char*) { } //声明函数指针并初始化 int (*Add)(int ,int ) ptr=&Add; char* (*Sub)(char*) prt_char=⋐ 这里声明了两个函数指针.
【技术拆解】Illumina边合成边测序(SBS)核心流程全解析 | 从文库构建到数据分析
本文深入解析了Illumina边合成边测序(SBS)技术的完整流程。从DNA样本的文库构建(片段化、加接头、扩增),到Flowcell上的簇生成(桥式PCR),再到核心的边合成边测序(SBS)循环(荧光标记、可逆终止),最后简述了从原始数据到生物学洞见的数据分析步骤,为理解这一主流高通量测序技术提供了清晰的框架。
掌握指针进阶:一篇带你玩转函数指针、函数指针数组及指向函数指针数组的指针!!
数组是一个存放相同类型数据的存储空间,那我们已经学习了指针数组//数组的每个元素是int*那要把函数的地址存到一个数组中,那这个数组就叫函数指针数组,那函数指针的数组如何定义呢?答案是:parr1parr1先和[]结合,说明parr1是数组,数组的内容是什么呢?是int (*)()类型的函数指针。转移表总之,函数指针数组实际上是一个数组,其元素都是指向函数的指针。这使得我们可以将不同的函数存储在数组中,并通过索引来调用特定的函数。
用InVEST做碳中和规划?手把手教你计算城市碳储量与热岛效应
本文详细介绍了如何利用InVEST模型进行城市碳中和规划的科学评估。通过手把手教学,演示了如何使用该模型的碳存储与城市热岛缓解模块,从数据准备、模型运行到结果解读,量化评估不同规划方案下的碳储量变化与热岛效应缓解潜力,为城市规划者提供科学的决策依据。
拉曼光谱仪的原理与应用——TFN 7G F660手持式拉曼光谱识别仪
拉曼光谱仪的原理与应用——TFN 7G F660手持式拉曼光谱识别仪
详解C语言指针函数、函数指针、函数指针数组
在C语言中,指针是一个很重要但是又很容易弄错的概念,也可以说指针就是C语言的灵魂,所以说学好指针对于完全掌握C语言是一个必须的过程。而在指针中,指针函数、函数指针、指针函数数组、函数指针数组、指向函数指针数组的指针等等概念看着又绕又头疼。本问总结了一下以上一些概念以及用法,并给出例程深化理解。 1. 指针函数 指针函数就是返回指针值的函数,本质是一个函数。所以指针函数等价于“返回值为指针的函数...
Angular 相关的知识点和项目汇总
Angular 知识点和项目汇总
详解函数指针和类成员函数指针
作者:倾夜·陨灭星尘 一.什么是函数指针? 函数指针,顾名思义即指向函数的指针。 如果要问,为什么能用一个指针指向一个函数呢?我觉得要理解这个问题,以及要理解后面的函数指针和类成员函数指针,没有什么比从计算机原理的角度来理解更容易了。这里就简要回顾一下相关知识。 众所周知,计算机(图灵机)执行程序的基本流程就是:取指令->执行指令->取下一条指令->……。取指令的位置由一个寄存器PC决定。
Zemax物理光学实战:3分钟搞定高斯光束传播模拟(附菲涅尔局部分析技巧)
本文详细介绍了在Zemax中进行高斯光束传播模拟与菲涅尔局部分析的实战技巧。通过3分钟快速设置指南和参数解析,帮助光学工程师准确模拟激光光束特性,避免常见误区。特别分享了菲涅尔局部分析的关键技巧和传播参数优化策略,提升光学系统设计的精度与效率。
CUDA内核反汇编实战:用cuobjdump解锁SASS指令的奥秘
本文详细介绍了CUDA内核与SASS指令的关系,以及使用cuobjdump工具进行反汇编分析的方法。主要内容包括:1. CUDA内核的基本概念及其在GPU并行计算中的重要性;2. SASS指令作为底层汇编指令的关键作用;3. cuobjdump工具的安装配置和使用方法;4. 通过数组加法实例演示反汇编过程;5. 深入分析SASS指令格式、分类和执行流程;6. 两个实际案例展示性能优化和问题排查的应用。文章为开发者提供了深入理解CUDA程序底层执行机制的有效途径。
函数指针、函数指针数组,函数指针数组的指针
数组指针 概念:数组指针是指针,只要是指针他就占4个字节; 例如: 整形指针:int *p;能够指向整形数据的指针 浮点型指针:float *p;能够指向浮点型的数据的指针 那么数组指针,同样的理解就是指向数组的指针。 Eg: int (*p)[10] 解释:这里的p由于小括号的原因和*先结合,所以他就是指针,然后指向的是一个大小为10的整形数组,所以p首先是一个指针,然后指向
【YOLOv11】070、YOLOv11异常检测:正常数据训练下的异常目标识别
本文探讨了如何利用YOLOv11模型进行工业异常检测,重点介绍了仅使用正常样本训练模型的创新方法。文章首先通过产线误报案例引出异常检测的核心问题,阐述了YOLOv11作为特征提取器的改造思路,包括正常数据训练、特征空间构建和异常度量等关键步骤。实战部分提供了精简代码示例,强调数据增强控制、特征层选择和自编码器应用等技巧。作者还总结了容易出错的细节,如特征选择、阈值设定和计算效率优化等,并给出实用建议:从简单方法入手、重视可视化、确保数据质量、部署时设置复核机制等。最后指出该方法虽能减少对异常样本的依赖,但需
指针深入了解——函数指针,函数指针数组,指向函数指针数组的指针。
我们上期了解了,数组指针,指针数组,我们知道了,数组也有自己的地址,那么函数有没有自己的地址呢?如果有那又该怎么存起来呢?今天我们就一起来探讨一下。
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
函数指针和函数指针类型
参考:https://blog.youkuaiyun.com/candyliuxj/article/details/6339414 函数指针 1. 定义 每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针。 注意:函数指针的本质是一个指针变量,且指针指向的函数的入口地址 2. 语法 指向函数的指针变量的一般定义形式为: 数据类型 ...
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
函数指针详解
这篇文章把函数指针的各种常用情况做了一个详解的总结。 1. 指向普通函数的指针 很简单,如下的例子可以说明基本格式和用法:int int_add(int a, int b){ return (a+b);}int int_sub(int a, int b){ return (a-b);}int (*int_operato
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
【C语言】函数指针、函数指针数组、函数指针数组的指针
一.函数指针 1.定义理解 函数指针:是一个指针,存放函数地址的指针。 函数的地址可以通过取地址函数名拿到,也可以通过函数名直接拿到。2.函数指针 (1)定义一个函数test void test(char *str) { printf("%s\n",str); } int main() { //函数指针的定义方式 void (*p)(char *str) = test...
函数指针和返回函数指针的函数
前言 无 函数指针 这里函数在前,指针在后所以很明显这是再说一个指针,也就是那个十六进制整数。 可以知道函数名所指向的就是内存中函数的首地址,那么完全可以使用一个指针来指向这个首地址。声明方式如下 type (*变量名)(参数); // 如 int (*pf)(int, int) 这个声明的意思就是一个函数指针,指向一个返回值为 int型,参数为两个 int型的函数首地址。这里面用一个括号强行将*的优先级提高,使得这个变量名先代表的是指针。但是很明显这里是没有具体的函数内容的,也就是说需要一个现成的函
三种函数指针的表达以及函数指针概念讲解
函数指针的使用和定义方法函数指针的概念三种表达函数指针的方法函数指针的调用方法 函数指针的概念 三种表达函数指针的方法 函数指针的调用方法 #函数指针概念 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。 #三种表达函数指针的方法 接下来通过简单加法运算函数:int add(int a,int b)来演示其对应的函数指
函数指针,函数指针数组,函数指针数组指针实例
实例1: #include<stdio.h> void fun1(void) { printf("call fun1\n"); } void fun2(void) { printf("call fun2\n"); } void main(void) { void(*pf1)(void); //定义函数指针变量 void(*pf2)(void); pf1 = fun1; //函数指针变量赋值(方式1) pf2 = &fun2; //函数指针变量赋值(方
C/C++函数指针、函数指针数组、函数指针数组的指针理解与应用
转自:https://www.cnblogs.com/haore147/p/3647262.html 1.函数指针的定义 顾名思义,函数指针就是函数的指针。它是一个指针,指向一个函数。看例子: A) char * (*fun1)(char * p1,char * p2); B) char * *fun2(char * p1,char * p2); C) char * fun3(...
使用 typedef 定义函数指针,更优雅的使用函数指针
简介 关于函数指针的介绍,这里就不做过多说明了,不了解的同学可以看看这篇博客: https://blog.youkuaiyun.com/afei__/article/details/80549202 使用 typedef 定义函数指针 通过下面这个例子,我们看看 typedef 是怎么搭配函数指针使用的吧。 int add(int a, int b) { return a + b; ...
函数指针与函数指针数组
详细讲述了函数指针与函数指针数组的创建与注意事项,并附上小例子助于理解
4656



被折叠的 条评论
为什么被折叠?



