函数指针

✍ dations ◷ 2025-12-10 11:23:50 #计算机技术

函数指针是一种在C、C++、D语言、其他类 C 语言和Fortran 2003中的指针。函数指针可以像一般函数一样,用于调用函数、传递参数。在如 C 这样的语言中,通过提供一个简单的选取、执行函数的方法,函数指针可以简化代码。

函数指针只能指向具有特定特征的函数。因而所有被同一指针运用的函数必须具有相同的参数和返回类型。

C语言标准规定,函数指示符(function designator,即函数名字)既不是左值,也不是右值。但C++语言标准规定函数指示符属于左值,因此函数指示符转换为函数指针的右值属于左值转换为右值。

除了作为sizeof或取地址&的操作数,函数指示符在表达式中自动转换为函数指针类型右值。因此通过一个函数指针调用所指的函数,不需要在函数指针前加取值或反引用(*)运算符。

以下为函数指针在C/C++中的运用

/* 例一:函式指標直接呼叫 */# ifndef __cplusplus    # include <stdio.h># else    # include <cstdio># endifint max(int x, int y){    return x > y ? x : y;}int main(void){    /* p 是函式指標 */    int (* p)(int, int) = & max; // &可以省略    int a, b, c, d;    printf("please input 3 numbers:");    scanf("%d %d %d", & a, & b, & c);    /* 與直接呼叫函式等價,d = max(max(a, b), c) */    d = p(p(a, b), c);     printf("the maxumum number is: %d\n", d);    return 0;}


相关

  • Lossen重排反应洛森重排反应(Lossen重排反应)中,异羟肟酸1先与失水剂(如对甲苯磺酰氯)反应得到O-取代的中间体2,然后重排生成异氰酸酯3:异羟肟酸一般由相应的酯与羟胺反应制备。该反应的综述参见:
  • 兄弟情兄弟情(英语:Bromance)又称为兄弟情谊,网络用语称为基情、好基友。常被用来形容男性朋友之间的一种暧昧关系,但是他们之间并不一定要有血缘上的兄弟关系,也并不一定是同性恋关系。
  • 冷杉冷杉属(学名:Abies),又称枞,是松科下的一个属,约40种。冷杉属植物原产于北美、中美、亚洲、欧洲和非洲北部。冷杉的叶与松科其他属植物不同。其叶针状,直接生于枝上,叶基部形似吸杯,
  • 频率分析频率分析在数学、物理学和信号处理中是一种分解函数、波形、或者信号的频率组成,以获取频谱的方法。在密码学中,频率分析是指研究字母或者字母组合在文本中出现的频率。应用频
  • 电光牌卫浴振吉电化厂是一家台湾卫浴设施生产批发商,以电光牌(TENCO)为行销品牌。1949年,振吉电化厂成立于高雄市。1953年5月,振吉电化厂改组成立“振吉电化厂股份有限公司”;同年,位在高雄的
  • 巴格拉基昂行动波罗的海 – 黑海 – 北极 – (跳马 – PQ-17船团 – 仙境)1941年巴巴罗萨 – (比亚韦斯托克及明斯克 – 斯摩棱斯克 – 乌曼 – 列宁格勒 – 第一次基辅 – 塞瓦斯托波尔围
  • 外烟列岛外烟列岛(韩语:외연열도)是一个位于大韩民国忠清南道保宁市西方的群岛。由外烟岛、贸马岛、梧岛、横见岛、黑岛、黄岛、石岛7个岛屿组成行政上属于保宁市鳌川面(朝鲜语:오천면),岛
  • XII宪法正文I ∙ II ∙ III ∙ IV ∙ V ∙ VI ∙ VII其它修正案 XI ∙ XII ∙ XIII ∙ XIV ∙ XV XVI ∙ XVII ∙ XVIII ∙ XIX ∙ XX XXI ∙ XXII ∙ XXIII ∙
  • 步步高 (企业)步步高电子工业集团(简称步步高电子或BBK),是华人企业家段永平在中国投资的一家以生产通信产品、教育用途电子产品为主的公司,1995年9月18日由华人企业家段永平在广东省东莞市长
  • 特罗普数额特罗普数额(Droop Quota)是一种用于可转移单票制及比例代表名单投票制中的最大余额方法的数额。只要有关候选人或候选名单每取得数额一倍的票数,便能获分配一个议席。特罗普数