函数指针

✍ dations ◷ 2025-11-06 12:44:08 #计算机技术

函数指针是一种在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;}


相关

  • 病症人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学症状(英语:symptom)又称病状,医学术语,在疾
  • 美国微生物学会美国微生物学会(英语:American Society for Microbiology,缩写ASM,曾称为美国细菌学会,英语:Society of American Bacteriologists)是一个美国微生物学科学组织,致力于推广这些肉眼
  • 台伯河台伯河 (拉丁语:Tiberis,意大利语:Tevere,英语:Tiber),又名特韦雷河,位于意大利中部,全长406公里,是该国第三长的河流。台伯河的源头是亚平宁山脉的富默奥洛山西坡,流入艾米利亚-罗马涅
  • 雨格诺派胡格诺派(法语:Huguenot,发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium","Ge
  • 联邦国防部俄罗斯联邦国防部(俄语:Министерство обороны Российской Федерации, Минобороны России),是统辖俄罗斯联邦军队的俄罗
  • 特利亚电信特利亚电信(Telia Company AB)是一家瑞典领先的电话公司和移动网络运营商,公司服务于瑞典、芬兰、挪威、丹麦、立陶宛、拉脱维亚和爱沙尼亚。该公司在北欧、东欧、中亚以及南亚
  • 谢尔普霍夫阶谢尔普霍夫期(英语:Serpukhovian)是石炭纪的第三个时期,年代大约位于330.9–323.2百万年前。
  • 小俄罗斯小罗斯或小俄罗斯(俄语:Малая Русь或Малороссия、乌克兰语:Мала Русь,希腊语:Μικρὰ Ῥωσία)是俄罗斯及俄语历史上曾使用的一个政治和地理术
  • 阿尔内·蒂塞利乌斯阿尔内·威廉·考林·蒂塞利乌斯(瑞典语:Arne Wilhelm Kaurin Tiselius,1902年8月10日-1971年10月29日),出生于斯德哥尔摩,瑞典化学家,1948年获诺贝尔化学奖。1971年逝世于乌普萨拉
  • 卡齐米日·东布罗夫斯基东布罗夫斯基(Kazimierz Dąbrowski,1902年9月1日- 1980年11月26日),波兰心理学家,物理学家。东布罗夫斯基提出积极分裂理论,描述了个人人格发展,认为精神紧张和不安是成长中所不可