首页

文章

如何定义指向函数的指针?

发布网友 发布时间:2022-04-19 14:29

我来回答

1个回答

热心网友 时间:2023-07-18 12:23

关于函数指针数组的定义方法,有两种:一种是标准的方法;一种是蒙骗法。

第一种,标准方法:

分析:函数指针数组是一个其元素是函数指针的数组。那么也就是说,此数据结构是是一个数组,且其元素是一个指向函数入口地址的指针。 

根据分析:首先说明是一个数组:数组名[] 

其次,要说明其元素的数据类型指针:*数组名[]. 

再次,要明确这每一个数组元素是指向函数入口地址的指针:函数返回值类型 (*数组名[])().请注意,这里为什么要把“*数组名[]”用括号扩起来呢?因为圆括号和数组说明符的优先级是等同的,如果不用圆括号把指针数组说明表达式扩起来,根据圆括号和方括号的结合方向,那么 *数组名[]() 说明的是什么呢?是元素返回值类型为指针的函数数组。有这样的函数数祖吗?不知道。所以必须括起来,以保证数组的每一个元素是指针。

第二种,蒙骗法:

尽管函数不是变量,但它在内存中仍有其物理地址,该地址能够赋给指针变量。获取函数方法是:用不带有括号和参数的函数名得到。

函数名相当于一个指向其函数入口指针常量。 那么既然函数名是一个指针常量,那么就可以对其进行一些相应的处理,如强制类型转换。 

那么我们就可以把这个地址放在一个整形指针数组中,然后作为函数指针调用即可。

(一) 用函数指针变量调用函数

可以用指针变量指向整形变量、字符串、数组、结构体、也可以指向一个函数。一个函数在编译时被分配一个入口地址。这个入口地址就称为函数指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。用简单的数值比较为例:

1 #include <stdio.h>

2 #include <stdlib.h>

4  int main()

5 {

6     int max(int,int);

7     int (*p)(int,int);

8     int a,b,c;

9     p = max;

10     scanf("%d,%d",&a,&b);

11     c = (*p)(a,b);

12     printf("a=%d,b=%d,max=%d\n",a,b,c);

13     return 0;

14 }

15 

16 int max(int x,int y)

17 {

18     int z;

19     if(x>y) z = x;

20     else z = y;

21     return(z);

22 }

李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 函数指针怎么调用 C语言函数指针怎么用? SPACE键是什么? 发早上好会占对方很大内存吗?? 怎样调皮的说早上好 韩语早上好怎么说 网上说微信发早上好图片会占对方大内存吗? 广东话早上好怎么说 早上好图片占空间大吗? 微信问候语早上好图片是站内存太大吗?发早上好图... 描写早上好的优美句子 八个字的早上好 早上好什么梗 早上好的句子, 今天早上好大的雾要不要去喷一下西瓜表面 每天早上好大的沥青味 早上好句子大全 最新早上好励志问候语 早上好大的雾,山里看不清路,急坏小狗,小鸡和小兔。... 早上好祝福语短句子 函数指针如何定义 函数指针怎么用?? c++的函数指针是怎么用的呀? 函数指针(指向函数的指针) 如何使用? 它和回调... 请问这个函数指针怎么理解? 如何定义一个函数指针? c语言函数指针怎么用啊?尤其是main函数 如何通过函数指针调用函数 函数指针? 怎样用函数指针做参数? 函数指针怎么理解*******调用 如何使用函数指针指向几个函数 如何定义一个指向任何函数的函数指针 函数指针是什么?_? 通易付打电话问还用吗,不用的话给注销是真的假的? 通易付plus如何注销 通易付plus里的个人信息怎么注销? 通易付实名认证中为什么要认证信用卡,但信用卡却... 通易付plus骗局通易付为什么刷卡扣了199的服务费?... 通易付pos机注册需要上传身份证和银行卡吗?提供这...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com