函数指针和指针函数

1. 函数指针

        如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。
        既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。

函数指针的定义方式为:函数返回值类型 (* 指针变量名) (函数参数列表);

函数指针的定义就是将“函数声明”中的“函数名”改成“(*指针变量名)”。

注意1:“(*指针变量名)”两端的括号不能省略,括号改变了运算符的优先级。如果省略了括号,就不是定义函数指针而是一个函数声明了,即声明了一个返回值类型为指针型的函数。 

注意2:指向函数的指针变量没有 ++ 和 -- 运算

通过函数指针操作函数:

        

# include <stdio.h>
int Max(int, int);  //函数声明
int main(void)
{int(*p)(int, int);  //定义一个函数指针int a = 0, b = 0, c = 0;p = Max;  //把函数Max赋给指针变量p, 使p指向Max函数printf("please enter a and b:");scanf("%d %d", &a, &b);c = (*p)(a, b);  //通过函数指针调用Max函数printf("a = %d\nb = %d\nmax = %d\n", a, b, c);return 0;
}
int Max(int x, int y)  //定义Max函数
{int z;if (x > y){z = x;}else{z = y;}return z;
}

注意3:因为函数名本身就可以表示该函数地址(指针),因此在获取函数指针时,可以直接用函数名,也可以取函数的地址。

p = Max可以改成 p = &Max
c = (*p)(a, b) 可以改成 c = p(a, b)

2. 指针函数 

        函数类型是指函数返回值的类型。在C语言中允许一个函数的返回值是一个指针(即地址),这种返回指针值的函数称为指针型函数,简称指针函数。

指针函数声明:
        函数返回值类型 *指针变量名 (函数参数列表);
        函数返回值类型* 指针变量名 (函数参数列表);

指针函数的使用:

        char *str = func(s1, s2);//函数返回值是一个指针,即接收端也是一个指针

#include <stdio.h>
#include <string.h> 
// 返回两个字符串中较长的一个
char *func(char *str1, char *str2)
{if(strlen(str1) >= strlen(str2)){return str1;}else{return str2;}
}int main()
{char *s1 = "C Language";char *s2 = "C is very great!";char *longstr = func(s1, s2);printf("Long string: %s\n", longstr);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/251521.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】引用 - 基本语法,注意事项,函数参数,函数返回值,本质

文章目录 1. 引用的基本语法2. 引用的注意事项3. 引用做函数参数4. 引用做函数返回值5. 引用的本质6. 常量引用 1. 引用的基本语法 作用是&#xff1a;给变量起别名 语法&#xff1a;数据类型 &别名 原名 2. 引用的注意事项 引用必须初始化引用在初始化后&#xff0c;不…

某省电子税务局网上系统报账及报税状态自动查询(python程序)

该自动批量查询工具的目的是给一些代记账的公司使用&#xff0c;可以让他们快捷的知道目前有哪些公司需要进行哪些项目的申报&#xff0c; 因为他们需要给很多家公司进行报账&#xff0c;多的有四五百家&#xff0c;普遍做法是在税务系统每次都人工登录每个公司&#xff0c;然后…

江苏省电子税务局中文点选验证码识别研究

最近突发奇想&#xff0c;想研究一下中文识别。因为之前研究过简单数字&#xff0c;字母类的识别&#xff0c;这种识别种类很少&#xff0c;数字就10个&#xff0c;字母顶多就26个。但是一到中文&#xff0c;常用字就有3000多个&#xff0c;数量级有了巨大提升。不知道传统的方…

全国税收调查系统服务器的url地址,天津市电子税务局税收统计调查数据采集操作流程说明...

税收统计调查数据采集 按照此路径找到重点税源登录天津市电子税务局“我要办税->税费申报及缴纳->申报辅助信息报告->税收统计调查数据采集”。 以18年为例进入到税收调查任务界面。选择2018年度全国税收调查。 1确认报表期 选择应该填写的报表期&#xff0c;点击在线…

税务服务器管理系统登不上,网上税务局登录失败解决方案

近日&#xff0c;有不少纳税人在使用网报系统时无法登陆&#xff0c;不要着急&#xff0c;小编在此教您三步走&#xff1a; 第一步&#xff1a;还原高级设置 点开您所用浏览器的选项页面&#xff0c;点击红框工具&#xff0c;然后点击黄框internet选项。 依照以上操作&#xff…

电子税务局网上申报系统弹出Acrobat错误的解决方法

今天财务部门同事在电子税务局网上申报系统提交时出现了“Acrobat不允许连接至”的错误&#xff0c;如下图所示&#xff1a; 1。首先关闭网页&#xff0c;然后打开Adobe Acrobat&#xff0c;在菜单栏点击【编辑】--【首选项】&#xff0c;如下图所示&#xff1a; 2。在左侧“种…

网上报税流程

&#xff08;一&#xff09;网上报税地址 登陆济南市地方税务局网站&#xff1a; www.jnds.gov.cn 。点击导航栏中的网上报税&#xff0c;进入网上报税登陆界面。 &#xff08;二&#xff09;登录&#xff1a; 操作&#xff1a;输入纳税人识别号、密码、校验码&#xff08;小写…

全国增值税发票查验平台 | 免验证码

国家税务总局全国增值税发票查验平台 众所周知&#xff0c;发票查验有一个肉眼难以辨认的验证码&#xff0c;今天推荐给各位的是国税总局发票查验的免码接口&#xff0c;目前支持全发票种类&#xff0c;你们看到的没错&#xff0c;是全发票种类&#xff0c;市面上的API接口也不…

国税怎么用计算机代码报税页面,自然人电子税务局网页端操作流程如下

原标题&#xff1a;自然人电子税务局网页端操作流程如下 享受暂缓缴纳个税政策的个体工商户注意啦&#xff0c;应该在2021年1月1日至1月20日期间&#xff0c;缴纳2020年依据规定缓缴的经营所得个人所得税。跟着小编一起往下看吧! 一、政策依据 根据国家税务总局2020年10号公告&…

增值税电子发票的对接系统的设计

一 序 发票一直以来是都是跟以票控税相关的&#xff0c;没有严格的去搜下书面的定义&#xff0c;从百度百科上摘一段&#xff1a; 发票在我国社会经济活动中具有极其重要的意义和作用。 1.发票具有合法性、真实性、统一性、及时性等特征&#xff0c;是最基本的会计原始凭证之…

Python入门(十五)函数(三)

函数&#xff08;三&#xff09; 1.返回值1.1 返回简单值1.2 让实参变成可选的1.3 返回字典1.4 结合使用函数和while循环 作者&#xff1a;Xiou 1.返回值 函数并非总是直接显示输出&#xff0c;它还可以处理一些数据&#xff0c;并返回一个或一组值。函数返回的值称为返回值。…

Photoshop使用教程 如何在线抠图

PS软件已经越来越普及&#xff0c;不管是拍什么类型的照片都少不了修图&#xff0c;而PS是相较易操作而且很专业的一个PS软件&#xff0c;但是很多人可能在电脑上无法安装Photoshop软件&#xff0c;遇到这样的问题应该怎么办呢&#xff1f;今天小编和大家一起看看没有Photoshop…

花33元租号玩2小时王者荣耀,居然还有这样的App

梦晨 发自 凹非寺量子位 报道 | 公众号 QbitAI 史上最严防沉迷规定的第一周&#xff0c;已经有小学生租号玩王者荣耀了。 据央视新闻曝光&#xff0c;租一个等级高、皮肤多的账号玩2小时就要花费33元。 而且不是店家发账号密码给你登录这么简单。 拍下账号后得到的是一串解锁码…

计算机游戏软件使用说明书,虚贝游戏上号器怎么用 使用方法详解

虚贝上号器是专为虚贝租号平台打造的上号软件&#xff0c;可以方便的进行选号下单、商品收藏、订单管理等功能&#xff0c;帮助您实现电脑游戏租赁后的自动登录&#xff0c;下面就跟小编一起了解下具体用法吧。 第一步 注册并登录 下载安装&#xff0c;并注册一个虚贝网帐号并登…

网路安全技能竞赛——【Linux操作系统渗透提权】解析(超级详细)

Linux操作系统渗透提权 任务环境说明&#xff1a; 服务器场景&#xff1a;Server2202&#xff08;关闭链接&#xff09;用户名&#xff1a;hacker 密码&#xff1a;123456 使用渗透机对服务器信息收集&#xff0c;并将服务器中SSH服务端口号作为flag提交&#xff1b;…

数据挖掘学习(三)——文本挖掘

笔者是一个痴迷于挖掘数据中的价值的学习人&#xff0c;希望在平日的工作学习中&#xff0c;挖掘数据的价值&#xff0c;找寻数据的秘密&#xff0c;笔者认为&#xff0c;数据的价值不仅仅只体现在企业中&#xff0c;个人也可以体会到数据的魅力&#xff0c;用技术力量探索行为…

七种方法计算文本相似度方法

简单讲解 基于关键词的空间向量模型的算法&#xff0c;将用户的喜好以文档描述并转换成向量模型&#xff0c;对商品也是这么处理&#xff0c;然后再通过计算商品文档和用户偏好文档的余弦相似度。 文本相似度计算在信息检索、数据挖掘、机器翻译、文档复制检测等领域有着广泛…

java基础知识点总结

java基础知识点总结 文章目录 java基础知识点总结一、JDK常用的包二、Get和Post的区别三、Java多态的具体体现四、StringBuffer StringBuilder String 区别五、Hashtable与HashMap的区别六、九大隐式对象七、Forword(请求转发)与Redirect(重定向)八、JQurey总结九、XML和Json的…

java学习进阶之路

一、下面是一个java学习路线图&#xff0c;以供参考 二、下面是java工作之路&#xff0c;以供参考&#xff1a; 三、下面给出阶段性细化需要掌握的技能&#xff1a; 1.第一阶段 2.第二阶段 3.第三阶段 4.第四阶段 5.第五阶段 四、更加细化的细节如下&#xff1a; 1&#xff1…

拓扑排序 php,数据结构与算法(周测7-拓扑排序和AOV网络)

判断题 1.AOE图的关键路径就是最长的路径 T F 2.AOE图的权值最大的边(活动)一定是关键活动。 T F 两条边相加可能比最大的边还要大。 3.在AOE-网工程中,减少任一关键活动上的权值后,整个工期也就会相应的减小。 T F 关键路径有多条时不一定。 4.AOE-网工程工期为关键活动上的…