函数指针

✍ dations ◷ 2025-07-23 09:01:55 #计算机技术

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


相关

  • 离子离子 (英语:Ion)是指原子或原子基团失去或得到一个或几个电子而形成的带电荷的个子。得失电子的过程称为电离,电离过程的能量变化可以用电离能来衡量。在化学反应中,通常是金属元
  • 可动遗传因子可动遗传因子(英语:Mobile genetic elements,MGE)是指能在基因组内转移的一类DNA,包括:一个基因组中的所有可动遗传因子统称为mobilome(英语:mobilome)。巴巴拉·麦克林托克因其“发
  • 徐叙瑢徐叙瑢(1922年4月23日-),生于山东临沂,中国发光学家,北京交通大学教授,北京交通大学光电子技术研究所名誉所长。1945年毕业于西南联合大学物理系。1955年获苏联科学院列别捷夫物理
  • 高雄市交响乐团高雄市交响乐团 (Kaohsiung Symphony Orchestra;简称高市交、KSO)是高雄市政府以基金会形式所管理的交响乐团。附设于财团法人高雄市爱乐文化艺术基金会。总部位于高雄市凤山
  • 西方墨点法Western印迹法(英语:Western blot)或称“蛋白质转渍法”、“免疫印迹法”(immunoblot)或“西式吸印杂交”,是分子生物学、生物化学和免疫遗传学中常用的一种实验方法,也是HIV检测的
  • 伊朗伊斯兰革命伊朗伊斯兰革命(又称1979年革命;波斯语:انقلاب اسلامی‎ Enghelābe Eslāmi)是二十世纪七十年代后期在伊朗共和国发生的政变,末代沙阿(伊朗国王)穆罕默德·礼萨·巴列
  • 孟买七岛孟买七岛已经合并组成孟买市:附近的岛屿Trombay和撒尔塞特岛都被并入大孟买都会区。附近被保留的岛屿还有:
  • 广深关系广深关系指中华人民共和国广东省广州与深圳两个城市之间的关系。广州与深圳同为中国内地一线城市。但由于广州是广东省人民政府所在地,历史文化悠久,是广东的政治经济文化中心
  • 菜系菜系是指依据各地饮食风味差异对中国菜进行区分的体系,本身是当代出现的汉语新词。古代文献中所记载的中国各地饮食差异,仅有物产、食材不同。至宋代经济繁荣,带动餐饮业,方使人
  • 荚状高积云荚状高积云(学名:Altocumulus lenticularis,缩写: 或 ),是高积云的一种。荚状高积云亦具有高积云的特征:由片状的、形似透镜或杏仁的云组成;云体通常被拉得很长,且有清晰可辨的轮廓