函数指针

✍ dations ◷ 2025-11-13 12:29:32 #计算机技术

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


相关

  • 精子精虫或精子(英语:spermatozoon、spermatozoön、复数 spermatozoa)是男性或其他雄性生物的生殖细胞。精子与卵子结合从而形成受精卵,进而发育为胚胎。精子最初由雷文霍克于1677
  • 英国第四台第四台(英语:Channel 4)是英国第四间电视台,1982年11月2日开始广播。第四台虽然是公共广播,但是和民营电视台一样播出商业广告。英国第四台的设立是BBC和独立电视台争夺英国第四
  • 晶体缺陷晶体缺陷(英语:crystallographic defect)是指晶体结构中周期性的排列规律被打破的情况。理想的晶体,具有周期性的晶体结构(这称为“长程有序”)。原子或分子的位置以固定的距离重
  • torr托(符号为Torr),与毫米汞柱(符号为mmHg)近乎等价,为压强、压力的单位,但并非国际单位制单位 (SI unit) 的成员之一。原本的 1 mmHg 是指“将幼细直管内的水银顶高一毫米之压力”,而正
  • 李侍尧李侍尧(?-1788年11月20日),字钦斋,汉军镶黄旗人,二等伯李永芳四世孙,清朝封疆大吏,伯爵。历任尚书、总督等,两度犯下死罪,乾隆帝不忍杀他,卒谥恭毅。乾隆八年,以荫生授印务章京。二十年,升
  • 黄洁夫黄洁夫(1946年3月-),江西吉安人。外科学硕士。中华人民共和国外科医生和政治人物,原中华人民共和国卫生部副部长。现任中央保健委员会副主任。1963年9月至1969年9月,在广州中山医
  • 热罗姆·波拿巴杰罗姆·波拿巴(Jérôme Bonaparte,1784年11月15日-1860年6月24日),法兰西第一帝国及百日皇朝皇帝拿破仑一世的幼弟,法国元帅及威斯特法伦王国国王(1807-1813)。杰罗姆·波拿巴于17
  • 2019冠状病毒病加纳疫情2019冠状病毒病加纳疫情,介绍在2019新型冠状病毒疫情中,在加纳发生的情况,可能无法涵盖所有及时的事件。2020年3月12日,加纳卫生部宣布该国确诊两名新冠肺炎患者,曾到达挪威和土
  • 日本昏迷指数日本昏迷指数(日语:ジャパン‧コーマ‧スケール,英语:Japan Coma Scale,简称为JCS),是指日本常用的意识障碍程度(或称意识程度)分类法。JCS依清醒程度分为三阶段,其中再细分为三阶段,因
  • 铁角蕨属约700铁角蕨属为铁角蕨科植物,密被黑褐色或深棕色小鳞片,鳞片为披针形,通常近全缘,基部着生。叶子为远生、近生或簇生,柄为草质,通常为淡绿色、青灰色或栗褐色。铁角蕨属包含约70