C/C++—— 写一个函数,它的参数为指向函数的指针,返回类型也为指向函数的指针

C++中函数参数类型为指针的指针 在C++中,每次调用函数时都会重新创建它的形参,并用传入的实参对形参进行初始化。 1 参数类型是非指针情况 例如,有如下函数 void func(char a) { a = 'a'; return; } 使用如下方式调用func()函数 char b = 'b'; func(b); 此时,变量a是func()函数的形参,变量b是func()函数的实参。此时,在func()... 阅读详情
 一个函数,它以指向字符的指针和对整数的引用为参数,不返回值;一个指向这个函数的指针;一个以这种指针为参数的函数;以及一个

返回这种指针的函数。写出一个函数的定义,它以一个这样的指针作为参数,并返回其参数作为返回值。提示:使用typedef。


/*************************************************************************
	> File Name: practice_1.cpp
	> Author: 
	> Mail: 
	> Created Time: 2016年03月15日 星期二 22时35分36秒
 ************************************************************************/

#include <iostream>
using namespace std;

//以指向字符的指针和对整数的引用为参数,不返回值
void fun1(char *ch, int & rval);//形参ch, rval可以没有

//指向上面函数fun1的函数指针
typedef void (*pfun1)(char* ch, int & rval);
pfun1 pf = fun1;//pf就是指向上面函数fun1的指针

//一个以pfun1指针为参数的函数
void fun2(pfun1);//形参可以没有

//一个返回pfun1类型指针的函数 
pfun1 fun3();

//一个函数,以fun1类型的指针作为参数,以fun1类型的指针作为返回值
pfun1 fun4(pfun1 pf)
{
    return pf;
}


int main()
{
    char* str = "cplusplus";
    int val = 100;

    cout << "调用fun1(str,val):";
    fun1(str, val);

    pfun1 pf1 = fun1;
    cout << "调用pf1(str, val): ";
    pf1(str, val);

    pfun1 pf2 = fun4(pf1);
    cout << "调用pf(str, val): ";
    pf(str, val);
    

    return 0;
}

void fun1(char* ch, int & rval)
{

    cout << "ch = " << ch << ", rval++ = " << rval++ << endl;
}

运行结果:

调用fun1(str,val):ch = cplusplus, rval++ = 100
调用pf1(str, val): ch = cplusplus, rval++ = 101
调用pf(str, val): ch = cplusplus, rval++ = 102

C/C++指针函数和函数指针 1、指针和函数 一.首先简要回顾一下指针和函数 函数简要的说就是完成某一个功能的代码块,其由返回值类型+函数名+(形参)还有具体代码组成(相信大家都懂的!);而指针(指针变量)是一种存放地址(内存单元的编号)的变量,因此通过指针可以指向相应地址中的内容。 2、指针函数 指针函数是指返回值类型是指针类型的函数,实质上就是最终该函数会返回一个地址或地址表达式给调用函数。其本质仍然是函数! 其函数原型为... 阅读详情

相关推荐

Camera | 瑞芯微rk3568平台MIPI-CSI驱动:从设备树到V4L2框架的完整链路解析

本文深入解析瑞芯微rk3568平台MIPI-CSI驱动的完整链路,从设备树配置到V4L2框架集成。详细介绍了rk3568的MIPI-CSI驱动架构、设备树关键节点布局、驱动初始化流程及数据流路径,帮助开发者快速掌握摄像头控制器的调试与优化技巧,实现稳定的视频采集系统。

weixin_28703489的博客 289

The C++ Programming Language 第七章 作业

The C++ Programming Language 第七章 作业james chen0503177.10.1写出下面声明:一个函数,它以指向字符的指针和对整数的引用为参数,不返回值;一个指向这个函数的指针;一个以这种指针为参数的函数;以及一个返回这种指针的函数。写出一个函数的定义,它以一个这样的指针作为参数,并返回其参数作为返回值。void f(char*,int&);void (*g)(c

xchenbb的专栏 2725

AUTOSAR BswM配置实战:手把手教你用Vector Davinci Configurator搭建第一个模式管理规则

本文详细介绍了如何使用Vector Davinci Configurator工具配置AUTOSAR BswM模块,实现车身控制ECU的模式管理规则。通过实战案例,从环境准备、核心概念梳理到具体配置步骤,包括ModeRequestPort、ModeCondition、Logical Expression和Rules的构建,帮助工程师快速掌握BswM配置技巧,提升汽车电子软件开发效率。

weixin_28678831的博客 351

【每日一C之十四】指向函数的指针

每日一C之指向函数的指针        每天拾一个C语言贝壳,厚积薄发,积跬步以致千里。  今日贝壳:关于指向函数的指针pointer的那点事                          C语言中,函数本身不是变量,但可以定义指向函数的指针,这类指针称为函数指针,可以赋值,做函数参数等。            1.定义函数指针:函数指针的定义要同指向函数保持一致,这种

Jiangwei的专栏 7514

o型圈沟槽设计_O型密封圈——详细选型过程及步骤

一、密封圈常用材料二、密封圈常用密封形式密封圈分为活塞密封,活塞杆密封,端面密封,旋转密封。三、O型密封圈的选型规则O型密封圈的尺寸图径向安装O型圈选型(静态和动态运动)活塞杆密封选择适当规格的O形圈时,应该保证其外径(d1+2*d2)至少等于或者大于沟槽外径d6;当选择的O形圈直径d1大于250 mm时, O形圈外径将不能超过沟槽外径的3%;当选择的O形圈直径d1小于250mm时, O形圈外径将...

weixin_39856630的博客 2万+

2025年三级等保新规实战:从零开始搭建企业安全防护体系(附完整配置清单)

本文详细解析2025年三级等保新规的核心变化,提供从零开始搭建企业安全防护体系的实战指南。重点介绍动态防护能力、实战化攻防验证和全链路数据保护等关键要求,并附完整配置清单,帮助企业高效合规。

weixin_30836759的博客 468

函数指针作为某个函数的参数及定义函数指针(回调函数)

转载于:http://blog.youkuaiyun.com/vlily/article/details/7244682 一、 定义某一函数的指针类型: 就像自定义数据类型一样,我们也可以先定义一个函数指针类型,然后再用这个类型来申明函数指针变量。 我先给你一个自定义数据类型的例子。 typedef int* PINT;    //为int* 类型定义了一个PINT的别名 int main(

谁de如花的博客 3万+

XC7K325T FPGA硬件设计实战:从板级原理图到高速接口优化

本文以XC7K325T FPGA为核心,详细阐述了从板级原理图设计到高速接口优化的完整硬件实战流程。内容涵盖芯片管脚与电源规划、时钟复位配置电路设计,并重点解析了DDR3内存子系统以及PCIe与光纤接口等高速电路的原理图与PCB设计要点,旨在帮助工程师构建稳定可靠的高性能硬件平台。

python9snake的博客 510

指向函数的指针——指向函数的指针作为函数的形参

#include int main() { int a,b,c; //int (*func)(int,int); int add(int,int); int sub(int,int); int process(int,int,int (*func)(int,int)); printf("输入a,b\n"); scanf("%d%d",&a,&b);//逗号隔开 // func=

kunkunTalk 868

Claude Code 100个真实案例 - 用AI绘制CAD机械图纸(工程师看了直呼内行)

本案例展示如何使用 Claude Code 配合 Python 的 `ezdxf` 库,从零开始生成专业级 CAD 机械图纸。我们将绘制一个完整的法兰盘零件图,包含主视图、俯视图、标注尺寸、粗糙度标记和标题栏,最终生成标准 DXF 文件,可直接在 AutoCAD 或 FreeCAD 中打开编辑。

yueyeguzhuo的专栏 891

FPGA DDR3实战(四):DDR地址映射自动化测试(1)—— 测试程序设计与代码逻辑

本文介绍了一种DDR地址映射自动化测试方案,旨在提高板卡调试效率。方案通过AXI4协议实现主从端通信,构建了包含地址控制器和测试数据生成器的模块化架构。测试程序支持突发传输、状态监控和错误检测,可灵活配置测试参数。采用状态机控制流程,先写入递增数据再读取比对,完成功能验证和性能评估。该方案可系统化验证DDR的正确性、稳定性和可靠性,相比传统手动测试显著提升效率。

FPGA_小田老师的博客 1976

【C/C++】函数指针与指针函数

函数指针是指向函数的指针变量。因此函数指针本质上是一个指针变量,只不过该指针变量指向函数。指针变量也可以指向整型变量、字符型、数组,也可以指向函数。C语言中,每一个函数都有一个入口地址,函数指针就指向函数的入口地址,可以通过函数指针来调用函数。例如结构为类型说明符(*指针变量)(参数)另外定义一个常用函数为voidfun1(),那么ptr=fun;ptr这时就是fun1()这个函数的入口地址了。指针函数是非常常见的,它是一个函数,只不过这个函数的返回值是一个地址值。......

NoBack7--For the dream 9833

从 Product Master 视角理解 Configurable Products

摘要:SAP S/4HANA中的可配置产品(Configurable Products)通过集中管理产品变体解决主数据膨胀问题。以汽车和服务器为例,销售端显示为单一产品,生产端则处理多维度组合。核心机制包括:1)使用KMAT物料类型或Configurable标记;2)通过特征(characteristics)定义可选项;3)用分类(class)组织特征;4)配置档案(configuration profile)控制业务逻辑。这种设计将客户选择与主数据解耦,避免为每个组合创建独立物料,同时支持销售配置、生产B

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 83

为什么一个指针变量作为形参传递给一个函数后,在函数体内改变这个指针的指向,函数结束后这个指针的指向没有发生变化?

为什么一个指针变量作为形参传递给一个函数后,在函数体内改变这个指针的指向,但函数结束后这个指针的指向没有发生变化? 现在有如下一段代码,其中指针p指向a,a的值为10,接着调用Fun函数,Fun函数的意图是将指针p指向空,如果调用成功,那么最后程序就会崩溃,无法打印指针p所指向内容的值,但运行后却发现,指针p所指向内容的值依旧为10,即Fun函数根本没有改变指针p的指向。 #include<stdio.h> void Fun(int* p) { p = nullptr; } int.

ThinPikachu的博客 8689

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C/C++ 基础 - 回调函数

函数指针也是个指针,但是和通常的指针不一样通常的指针指向的是整型、字符型或数组等变量而函数指针,指向的是函数回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。这段话比较长,也比较绕口。下面我通过一幅图来说明什么是回调:假设我们要使用一个排序函数来对数组进行排序,那么在。

2402_83315537的博客 2874

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

函数指针与指针函数的本质区别:地址指向 vs 返回类型

通过以上解释和示例,您应该能清晰理解函数指针和指针函数的区别:函数指针是“指向函数的指针”,本质在地址;指针函数是“返回指针的函数”,本质在返回类型。如果您有具体代码场景,我可以进一步优化示例!下面我将逐步解释这两个概念,并通过代码示例说明其区别和应用场景。

2501_94067891的博客 1378

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C/C++:函数指针

要声明和初始化函数指针,首先需要知道要指向的函数的签名(返回类型和参数类型)。然后,你可以声明一个函数指针变量,并将其初始化为指向特定函数的地址。

2301_79181030的博客 1900

C/C++语言中指向函数的指针

“在C语言中,函数本身不是变量,但可以定义指向函数的指针,这种指针可以被赋值、存放于数组之中,传递给函数及作为函数的返回值等” --《The C Programming Language Second Edition》 下面给出几个简单的例子来说明指向函数的指针。 第一个例子说明指向函数的指针如何说明、赋值、调用。 #include #define TESTDATE 100 int func(in

myali88的专栏 1317

指向函数的指针的使用

谈到这个话题,初学者可能在这方面较难看懂。不过对c/c++较熟悉的人来说,大家谈到指向函数的指针就会想到在排序中,那个以函数作为参数传递到排序函数中就是一个最典型的应用。1.指向函数的指针的类型指向函数的指针应该怎样声明?拿两个字符串的比较函数来说:int  strCompare(const string & s1, const string & s2) ;如果两个字符串相等就返回0,否则

Dremi的专栏 1万+

C/C++函数指针基础简单讲解

C/C++函数指针基础讲解

losangelx的博客 727

C++指向对象成员函数的指针

指向对象成员函数的指针 对象的成员函数是一个函数,那么,我们可以定义一个函数指针,指向对象的成员函数。但是,该函数指针变量的定义,与普通的函数指针变量定义不同。 首先,我们先看看指向“普通函数”的指针变量的定义方法: 数据类型名 (* 指针变量名)(参数列表); 例如: void (*pf)(int); //定义函数指针pf,指向的函数是带有1个int类型的参数,并且,返回类型是void 所以,它可以指向一个函数,并通过函数指针调用该函数,如下: pf = func;...

LC的专栏 3507

用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数

用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数 正确答案: D 你的答案: D(正确) int *a[10]; int (*a)[10]; int (*a)(int); int (*a[10])(int); int (*a[10])(int); //函数指针的数组,指向有一个参数并且返回类型均为int的函数的数组 int ...

Find的博客 9866

C/C++基础 -- 指针作为函数的参数

C/C++基础 -- 指针与函数1、指针作为函数的参数1.1、指针作为函数的形参1.1、指针作为函数的形参1.2、通过指针形参返回多个运算结果 本博文由 西北工业大学MOOC 总结而来,以备以后回顾。 1、指针作为函数的参数   指针作为函数参数最重要的应用是作为函数参数,它使得被调函数除了返回值以外,能够将更多的运算结果返回到主调函数中。指针是重要的函数参数传递工具。 1.1、指针作为函数的...

不世峰兄 的博客 3950

【C/C++】函数作为参数

int (*p)(int, int); 定义一个指向函数的指针p,被指向的函数有两个整型参数并返回整型值。

zsyyugong的博客 3446

C/C++:常量指针(const Pointer)与指向常量的指针(Pointer to const)

指向常量的指针(Pointer to const)和常量指针(const Pointer)涉及const在指针中的不同用法,是易混淆但非常重要的概念。

凯琳和火龙果的博客 2057

【C/C++】常量指针、指针常量以及指向常量的指针常量

【C/C++】常量指针、指针常量以及指向常量的指针常量   文/快乐鸟   三个名词虽然非常绕嘴,不过说的非常准确。用中国话的语义分析就可以很方便地把三个概念区分开。   一)常量指针。   常量是形容词,指针是名词,以指针为中心的一个偏正结构短语。这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。   指针指向的对象是常量

红鱼X的网志 2055
上一篇: C/C++——指向函数的指针和指向函数的指针的数组
下一篇: 笔试题目——研发工程师笔试题
readyao
博客等级 码龄11年 243粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值