函数指针

✍ dations ◷ 2025-12-10 17:34:30 #计算机技术

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


相关

  • 英安岩英安岩是一种化学成分和闪长岩相当的火山喷出岩石,颜色为灰色、灰白或灰红等浅色,斑状或块状结构,基质为隐晶质和玻璃质,以石英和长石为主,有时具有流纹构造。斑晶以斜长石为主,也
  • 无线电探空仪无线电探空仪通常由充满氦气或氢气的气球(风向球)搭载升空,在中低层大气测量大气主要数据,并通过无线电将数据传回地面气象站点的仪器。运用无线电传送数据,测量高空天气数据的仪
  • 705年前9世纪 | 前8世纪 | 前7世纪前720年代 前710年代 | 前700年代 | 前690年代 前680年代前710年 前709年 前708年 前707年 前706年 | 前705年 | 前704年 前703年 前702年 前
  • 怀特河怀特河国家森林 (英语:White River National Forest)是美国的一个国家森林,位于科罗拉多州的西北,怀特河从其北部穿过而得名,是游客数量量最大的美国国家森林,主要游客集中在其边界
  • 酸洗酸洗是一种金属表面处理方法,用于除去污渍、锈等。酸洗主要使用盐酸或硫酸。盐酸虽然比硫酸贵,但它速度快,同时金属损耗小。碳素钢通常用盐酸或硫酸酸洗。合金钢常用磷酸,硝酸或
  • 墨汁鬼伞Coprinus atramentarius可食用墨汁鬼伞(学名Coprinopsis atramentaria,昔称Coprinus atramentarius),又名鬼盖、鬼伞、鬼屋、鬼菌或朝生地盖,以往为分类在鬼伞属下,现归为拟鬼伞属
  • 卫生福利部嘉义医院卫生福利部嘉义医院(简称嘉义医院)是一所位于台湾省嘉义市西区的卫生福利部所属医院,以777床的病床数位列南台湾规模最大的部立医院。市区1路 嘉义医院站 (位于中兴路)家庭医学
  • 创伤式授精创伤式授精(Traumatic insemination)是部分无脊椎动物的交配方式,即雄性用交接器刺入雌性的腹部,将精子注入腹腔(血腔)中。精子通过雌性的血淋巴散播到卵巢中,使其怀孕。雌性愈合前
  • 三重模块冗余在计算机科学中的三重模块冗余(triple modular redundancy,有时也称为triple-mode redundancy)简称TMR,属于多重模块冗余(N-modular redundancy)的容错形式,用三个相同的系统运行同
  • 啄羊鹦鹉啄羊鹦鹉(学名:)是生活在新西兰南岛高山地带的一种大型鹦鹉,属于啄羊鹦鹉属的一种。啄羊鹦鹉体长约48厘米。身体大部分为橄榄绿色,头顶和颈部为黄绿色。公鸟比母鸟的喙更为弯曲。