函数指针

✍ dations ◷ 2025-12-08 00:46:33 #计算机技术

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


相关

  • 五脏六腑脏腑,是中医对内脏的总称,通称五脏六腑。根据《素问‧五脏别论篇》,“脏”指的是人体内的五脏,即:肝、心、脾、肺、肾(加上心包即为六脏),主要功能为生化和蓄存精气;以及六腑,即:胆、小
  • 贝叶斯推理贝叶斯推断(英语:Bayesian inference)是推论统计的一种方法。这种方法使用贝叶斯定理,在有更多证据及信息时,更新特定假设的概率。贝叶斯推断是统计学(特别是数理统计学)中很重要的
  • 1003年
  • 东京电力东京电力控股株式会社(日语:東京電力ホールディングス株式会社;英语译名:Tokyo Electric Power Company Holdings, Inc.),简称东京电力、东京电力HD、东电或TEPCO,是日本一家电力公
  • 送气送气(Aspiration),语音学概念,指某些阻碍音在除阻时所伴随的强烈的空气喷吐。为感知送气与不送气音之间的差别,试将一只手或点燃的蜡烛置于口前,朗声说“滩”(/tʰan/)、“单”(/t
  • 驼背大马哈鱼粉红鲑(学名:Oncorhynchus gorbuscha),又称为驼背鲑、细鳞麻哈鱼、驼背大麻哈鱼,为麻哈鱼属的一个种。分布于太平洋北部及其沿岸河流,如绥芬河、图们江等,属于洄游性鱼类。其常见于
  • 公元291年元康有多种含义:
  • 克劳斯·冯·克利青克劳斯·冯·克利青(德语:Klaus von Klitzing,1943年6月28日-),德国物理学家。他因于1980年2月5日在格勒诺布尔高强度磁场实验室发现量子霍尔效应而获1985年诺贝尔物理学奖。冯·
  • SwiftSwift 在英文中指雨燕,另外也可能指下列事物:Swift 作为人名姓氏时通常译为斯威夫特,可以指:
  • 螺旋 (简单机械)螺旋(英语:screw)通常是表面具有凹凸不平呈螺旋线型条纹的圆柱体或圆孔体,称这种圆柱体为“螺杆”、圆孔体为“螺母”、螺旋线型条纹为“螺纹”。螺杆的螺纹称为“外螺纹”,螺杆