函数指针

✍ dations ◷ 2025-12-10 05:27:03 #计算机技术

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


相关

  • 血液检验项目正常参考值范围血液检验项目正常参考值范围(英语:Reference ranges for blood tests),指的是医疗保健专家从血液样品中选取的一组用来描述医疗检验结果的正常参考值。血液检验的测量值在临床中
  • 棒球示范项目:1912、1936、1952、1956、1964、1984、1988棒球是一种团体球类运动,由人数最少为9人的两支队伍在一个扇形的球场进行攻击与守备。棒球球员分为攻、守两方,攻方球员利
  • 浅筋膜筋膜是贯穿身体的一层致密结缔组织,它包绕着肌肉、肌群、血管、神经。筋膜分好几层,分别叫浅筋膜、深筋膜、内脏筋膜,它们延绵不断贯穿身体上下。筋膜是致密结缔组织,其内含紧密
  • 吴锦发吴锦发(1954年9月14日-),前任屏东县政府文化处处长,台湾作家,高雄市美浓区客家人。吴锦发在国立中兴大学法商学院(今国立台北大学)社会学系取得学位,曾在电影公司、《民众日报》《台
  • 国家人口和计划生育委员会1999年规定:印章直径5厘米,中央刊国徽,由国务院制发中华人民共和国国家人口和计划生育委员会(2003—2013,简称国家人口计生委),原称国家计划生育委员会(1981—2003,简称国家计生委),曾
  • G蛋白耦联受体结构 / ECODG蛋白偶联受体(G Protein-Coupled Receptors,GPCRs),是一大类膜蛋白受体的统称。这类受体的共同点是其立体结构中都有七个跨膜α螺旋,且其肽链的C端和连接第5和第6个
  • 腓力五世费利佩五世(西班牙语:Felipe V,腓力,全名:费利佩·德·波旁-巴伐利亚,Felipe de Borbón y Bavaria,1683年12月19日-1746年7月9日),18世纪的西班牙帝国国王,1700年至1746年在位,在位46年
  • 大溪简送德古宅简送德古宅,原名永安居,闽式传统民居,位于台湾桃园市大溪区,为桃园直辖市定古迹。建于明治三十一年,(清光绪二十四年)于1902年竣工,正厅外的门联“永绍宏基克勤克俭绳祖武,安居陋室惟
  • 秦皇岛市秦皇岛市市标秦皇岛市,简称秦,旧称临榆,是中华人民共和国河北省下辖的地级市,位于河北省东北部,市境西南界唐山市,西北接承德市,东北临辽宁省朝阳市、葫芦岛市,东南滨渤海湾。地处燕
  • 艾森豪威尔主义艾森豪威尔主义(英语:Eisenhower Doctrine)是指美国总统德怀特·艾森豪威尔于1957年1月5日提出的一份演说,意旨若中东国家受到另一个国家武装侵略,可以跟美国提出经济或军事上的