函数指针和指针函数

沈阳师范大学C++ pta第三章 指针引用 B.f1(a,b);C.f1(&a,b);D.f1(a,&b);B.char **p;D.给出的三项中,p都是指针p=&a[0]+1;,则A.x++B.p++C.*(p++)D.&x++A.a++B.p+1C.a+1D.++pA.3 ,4B.3 ,11C.12 ,13D.3 ,9。 阅读详情

函数指针和指针函数 

[函数指针]

函数类型 (*指针变量名)(形参列表);

“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。

例如:

int (*f)(int x);

double (*ptr)(double x);

在定义函数指针时请注意:
   
函数指针和它指向的函数的参数个数和类型都应该是—致的;

函数指针的类型和函数的返回值类型也必须是一致的。

2.函数指针的赋值

函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。

例如,

int func(int x);   /* 声明一个函数 */

int (*f) (int x);    /* 声明一个函数指针 */

f=func;            /* 将func函数的首地址赋给指针f */

赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。

3.通过函数指针调用函数

函数指针是通过函数名及有关参数进行调用的。

与其他指针变量相类似,如果指针变量pi是指向某整型变量i的指针,则*p等于它所指的变量i;如果pf是指向某浮点型变量f的指针,则*pf就等价于它所指的变量f。
同样地,*f是指向函数func(x)的指针,则*f就代表它所指向的函数func。所以在执行了f=func;之后,(*f)和func代表同一函数。

由于函数指针指向存储区中的某个函数,因此可以通过函数指针调用相应的函数。现在我们就讨论如何用函数指针调用函数,它应执行下面三步:

首先,要说明函数指针变量。

例如:int (*f)(int x);

其次,要对函数指针变量赋值。

例如: f=func;    (func(x)必须先要有定义)

最后,要用 (*指针变量)(参数表);调用函数。

例如:    (*f)(x);(x必须先赋值)


【例】任意输入n个数,找出其中最大数,并且输出最大数值。

main()

{

        int f();

        int i,a,b;

        int (*p)();    /* 定义函数指针 */

        scanf("%d",&a);

        p=f;            /* 给函数指针p赋值,使它指向函数f */

        for(i=1;i<9;i++)

        {
                scanf("%d",&b);

                a=(*p)(a,b);    /* 通过指针p调用函数f */

        }

        printf("The Max Number is:%d",a)

}


f(int x,int y)

{

    int z;

    z=(x>y)?x:y;

    return(z);

}

运行结果为:

343 -45 4389 4235 1 -534 988 555 789↙

The Max Number is:4389


【指针函数】

一个函数不仅可以带回一个整型数据的值,字符类型值和实型类型的值,还可以带回指针类型的数据,使其指向某个地址单元。

        返回指针的函数,一般定义格式为:

        类型标识符    *函数名(参数表)

int *f(x,y);

其中x,y是形式参数,f是函数名,调用后返回一个指向整型数据的地址指针。f(x,y)是函数,其值是指针。

如:char *ch();表示的就是一个返回字符型指针的函数,请看下面的例题:

【例】将字符串1(str1)复制到字符串2(str2),并输出字符串2.

#include "stdio.h"

main()

{

    char *ch(char *,char *);

    char str1[]="I am glad to meet you!";

    char str2[]="Welcom to study C!";

    printf("%s",ch(str1,str2));

}

char *ch(char *str1,char *str2)

{

    int i;

    char *p;

    p=str2
   
    if(*str2==NULL) exit(-1);

    do

    {

        *str2=*str1;

        str1++;

        str2++;

    }while(*str1!=NULL);

    return(p);

}


通过分析可得

函数指针是一个指向函数的指针,前后两个都不能省略:函数类型 (*指针变量名)(形参列表)。
而指针函数只是说明他是一个返回值为指针的函数,只需要参数带括号:函数类型  *函数名(参数表)
以上内容摘自http://lionwq.spaces.eepw.com.cn/articles/trackback/item/18258 ,仅供交流。

 

GCdepth散点图绘制 基因组组装完成后,需要对组装结果进行评估,其中GC_depth图是一个比较重要的指标,改图的横坐标是GC含量,纵坐标是平均深度。以30k为窗口(window)无overlap计算其GC含量和平均深度。如果存在样品污染,通常能够从GC含量分析中呈现出来。下文探索了几种绘制GC_depth散点图的方法思路。 阅读详情

相关推荐

MOOS-ivp 实验三 MOOS简介(3)

MOOS-ivp 实验三 MOOS简介(3) 继上一篇文章继续对实验进行记录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录MOOS-ivp 实验三 MOOS简介(3)六、A Simple Example with pXRelay1.pXRelay基本使用2.pXRelay简单例子3.pXRelay实验七、First Experiments in Modifying MOOS App Code1.下载一个MOOS模板文件2.打开MOOS模板文件总结 六、A Simple E

weixin_44151170的博客 2534

C基础知识:函数指针和指针函数的基本概念

在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函

740

CloudCompare 二次开发(36)——非均匀体素降采样

使用CloudCompare与PCL编程实现的非均匀体素降采样。

点云侠的博客 746

指针函数与函数指针的区别

转自:http://www.cnblogs.com/gmh915/archive/2010/06/11/1756067.html 一、 在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚, 找了一些资料,首先它们之间的定义: 1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针      类型标识符

明天会更好 1520

5.17华为OD机试真题 新系统 - 输出二叉树后序遍历结果 (Java/Py/C/C++/Js/Go)

5.17华为OD机试真题 新系统 - 输出二叉树后序遍历结果 (Java/Py/C/C++/Js/Go)

算法大师! 518

【现代人形机器人:从物理建模到大模型驱动的控制与学习】第1章 机器人建模回顾

本章建立读者进行后续控制 / 优化 / 学习工作的数学与计算基础。内容分为三大块:刚体运动学:位姿表示、坐标变换、旋转参数与李代数/李群(指数映射、twist)多关节机构的正/逆运动学:DH 与 POE 两种建模、雅可比矩阵推导、数值/解析逆解方法与奇异性问题约束动力学:拉格朗日公式、牛顿—欧拉递归算法、接触/冲击模型、受约束系统的方程(拉格朗日乘子与互补性条件)每一节同时给出与练习题。假设读者已具备线性代数(矩阵、特征分解、SVD)、多变量微积分与基础力学(牛顿第二定律)知识。

u012133341的博客 185

用指针求10个数的平均数_Excel统计函数详解,一看就会用 #办公技巧 #excel #职场...

统计函数Average求平均数AverageIf条件求平均数AverageIfs条件求平均数Count求个数CountIf条件求个数CountIfs条件求个数CountA非空单元格个数CountBlank空单元格个数Max最大值Min最小值Large第K个最大值Small第K个最小值Rank排名Average函数简介:求平均值=Average(10,18) 结果为14 即(10+18)/2=14...

weixin_33736666的博客 1589

手把手教您如何群晖/飞牛NAS等服务器上一键部署洛雪音乐同步服务,手机电脑无缝同步歌单,支持外网访问

🎵 手机电脑歌单不同步?用Docker在群晖/飞牛NAS等服务器上搭个同步服务器, 3分钟搞定 !支持docker-compose一键部署,手机、电脑、平板收藏夹实时同步,外出也能用域名远程访问 ~ ✨

XiaoqiangClub的博客 4605

C++ 函数指针和指针函数

C++中的一个重要概念及其特点,也是掌握C++ 比较困难的部分。本文主要介绍函数指针和指针函数用法及区别。 1、指针函数 指针函数,简单理解就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。声明格式如下: *类型标识符 函数名(参数表) 例如, int *myfun(int x,int y); 注意:在函数名前面多了一个*号,而这个函数就是一个指针函数。其返回值是一个 int 类型的指针。 指针函数的写法可以有以下几种: int *fun(int x,int y);

m0_52902391的博客 5188

【用unity实现100个游戏之1】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(一)(附源码)

俯视角射击游戏)是一类以俯视视角进行游戏展示的射击游戏。在这种游戏中,玩家控制着一个角色或载具,从俯视的角度上方观察游戏世界,并与敌人进行战斗。这种视角使玩家能够有更好的全局观察和策略性,同时也强调快速反应和精确射击。视角:俯视角度可以是固定的,也可以随着玩家角色的移动而变化,但都允许玩家以全局视角观察整个战场,有利于制定战略和规划行动。射击:玩家通常需要使用各种武器来与敌人进行战斗,包括枪械、爆炸物等。射击动作依赖于玩家的反应速度和准确性。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7832

ZeroClaw安装、使用方法详细全解

ZeroClaw 是一个用 Rust 编写的轻量级、高性能、完全自主的 AI 助手运行时框架

洛星核的博客 618

指针函数和函数指针

指针

xc_123的博客 6726

存储硬盘格式怎么把512还原为520格式??

硬盘厂商工具(如SeaChestsg_format)可以调整扇区大小。备份数据,因为调整扇区会清除硬盘内容。根据硬盘型号和接口类型,选择合适的工具进行调整。如果你需要更详细的帮助,请提供你的硬盘型号和存储设备类型。希望如上措施及解决方案能够帮到有需要的你。PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。

**My Coding Family** 1146

函数指针和指针函数以及数组指针和指针数组区别

函数指针(指向函数的指针) 与数据项类似,函数也有自己的地址。函数的地址是存储其机器代码的内存的开始地址。例如,可以编写将另一个函数的地址作为参数的函数,这样第一个函数将能够找到第二个函数,并运行它。与直接调用另一个函数相比,这种方法显得很笨重,但它允许在不同的时间传递不同函数的地址,这意味着可以在不同的时间使用不同的函数。 函数指针的用法需要以下三个步骤: 获取函数的地址 声明一个函数指...

一丁的博客 2987

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

指针函数和函数指针的理解与应用

指针函数 指针函数, 即返回值为指针的函数, 本质上是一个函数, 我们先看下面实例: #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;time.h&amp;gt; int year; int mon; int day; char* GetDate(); int main() { char* current = GetD...

Sock的博客 5353

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

指针进阶之函数指针和函数指针数组

指针进阶之函数指针和函数指针数组,想学的进来

人生得意须尽欢 588

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

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

C语言函数指针和指针函数

写法不同可以简单粗暴的理解为,指针函数的是属于数据类型的,而函数指针的星号是属于函数名的。再简单一点,可以这样辨别两者:函数名带括号的就是函数指针,否则就是指针函数。

AnChenliang_1002的博客 2043

函数指针和返回函数指针的函数

前言 无 函数指针 这里函数在前,指针在后所以很明显这是再说一个指针,也就是那个十六进制整数。 可以知道函数名所指向的就是内存中函数的首地址,那么完全可以使用一个指针来指向这个首地址。声明方式如下 type (*变量名)(参数); // 如 int (*pf)(int, int) 这个声明的意思就是一个函数指针,指向一个返回值为 int型,参数为两个 int型的函数首地址。这里面用一个括号强行将*的优先级提高,使得这个变量名先代表的是指针。但是很明显这里是没有具体的函数内容的,也就是说需要一个现成的函

cuoxin123的博客 1517

指针函数和函数指针的区别

指针函数是返回值为指针类型的函数,简单的来说,它本身是一个函数,只是这个结果是返回的指针类型,该指针可以指向各种数据类型,如整形、浮点型、结构体等。指针函数是一个函数,只是返回值为指针;而函数指针本质是一个指针变量,它指向的是函数。指针函数常用于返回动态分配的内存地址或数组等;函数指针常用于实现回调函数、函数表等,以提高程序的灵活性和可扩展性。

千千道的博客 966

函数指针和指针函数的区别及使用

文章目录指针函数函数指针 指针函数 指针函数本质是一个函数,返回值是某一类型指针 写法如下: int* fun(int x,int y); int * fun(int x,int y); int *fun(int x,int y); 例子如下: #include<iostream> using namespace std; char * D(char s[]) { return s...

yuabcxiao的博客 3411

函数指针和指针函数,函数指针数组

 【函数指针】       在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”

sunhy1021的专栏 1426

指针函数和函数指针 函数指针数组 回调函数

我们经常使用的函数定义的方式是(类型名 标识符 (形参列表) {函数体})指针函数的定义其实也并无不同,我们定义的方式也是(类型名 标识符 (形参列表) {函数体})只不过使用的是指针类型。int* ret(int x,int y) {} 或者 int *ret(int x,int y) {}怎么去写看个人习惯,并无区别。这么看来其实也是比较简单,和普通函数的定义并没有什么大的区别,也就是多了一个* ,仅此而已。

C++领域内容分享 389
上一篇: 对于左操作数必须为左值的问题
下一篇: 成员变量的初始化和赋值
CHF_VIP
博客等级 码龄14年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值