函数指针

✍ dations ◷ 2025-11-22 22:17: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;}


相关

  • 餐饮饮食业又称餐饮业,是指负责在家以外的地方提供餐点的企业、商家或服务,包括餐厅、饭店、饮料店、外烩等各种形式。除了厨师外,还有侍应、外送员等从业员。
  • 硫化铁硫化铁(化学式:Fe2S3),是三种铁的硫化物(英语:iron sulfide)之一,此外还有FeS和FeS2。它是一种固体棕色粉末,但在常温下腐化为黄绿色粉末。这是一种十分不稳定的人造产物,不存在于自然
  • 子宫内膜增生症子宫内膜增生症(endometrial hyperplasia)是增生症(Hyperplasia)的一种,也是多囊卵巢综合症的症状之一,如果没有接受适当的治疗,可能会进一步导致子宫内膜癌(Endometrial cancer)的发
  • 生存分析生存分析(Survival analysis)是指根据试验或调查得到的数据对生物或人的生存时间进行分析和推断,研究生存时间和结局与众多影响因素间关系及其程度大小的方法,也称生存率分析
  • 长春花新碱长春新碱(Vincristine),商品名“维克思丁”、“安可平”(Oncovin),又名长春花新碱、新长春碱,医学上简称VCR,是一种由夹竹桃科长春花属植物长春花中提取的一种生物碱。它是一种有丝
  • Caledonian Orogeny喀里多尼亚造山运动(Caledonian orogeny)是一个在不列颠群岛、斯堪的纳维亚山脉、斯瓦尔巴群岛、东格陵兰和部分中欧、北欧地区岩层中纪录的造山运动。喀里多尼亚造山运动相关
  • 鹤山鹤山市(官方音译:Heshan,传统外文:Hokshan)是中国广东省江门市下辖县级市,位于广东省南部珠江三角洲腹地,与佛山市南海区、顺德区隔西江相望,因市内有山形似仙鹤而得名。鹤山的地理
  • 时越时越(1991年1月11日-),中国河南省洛阳市人,中国棋院职业九段。时越6岁学棋,2003年初夺得晚报杯业余围棋锦标赛冠军,同年入段。2007年升为四段,2010年升为五段。2013年,夺得第17届LG杯
  • 网络外部性网络外部性(network externality),又称网络效应(network effect)或需求方规模经济(demand-side economies of scale),指在经济学或商业中,消费者选用某项商品或服务,其所获得的效用与
  • 刹车片刹车片(英语:Brake Pad),又称为来令片或刹车来令片BEST BRAKE PAD,广泛用于汽机车,自行车,铁道及各种工业用夹器上,是各种装配有鼓刹或碟刹之交通工具制动系统的一个重要的组成部