函数指针

✍ dations ◷ 2025-09-04 23:20:32 #计算机技术

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


相关

  • 紫色色杆菌紫色色杆菌(Chromobacterium violaceum)是一种革兰氏阴性、兼性厌氧及无芽孢的球杆菌。在热带及亚热带的水中及土壤植物可以找到。它们会生产出紫色杆菌素。它们可以在营养琼
  • 靶向治疗人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学靶向治疗或靶向分子治疗(英语:Targeted
  • 苏恩·伯格斯特龙苏恩·伯格斯特龙(瑞典语:Sune Karl Bergström,1916年1月10日-2004年8月15日),瑞典生物化学家。于1975年成为诺贝尔基金会的主席。并于同年与本格特·萨米尔松(Bengt I. Samuelsso
  • 舌羊齿属见内文舌羊齿属(学名:Glossopteris),又名舌叶蕨属、舌蕨属、舌叶松属,是一属已灭绝的种子蕨,生存于二叠纪至侏罗纪晚期。它们生长在温暖潮湿的低洼地带。其化石主要分布于南半球及
  • 动物狂欢节动物狂欢节(法文:Le carnaval des animaux)是法国作曲家卡米尔·圣桑所作的一系列室内乐组曲,由十四首小品组成。以各种乐器生动地描写许多动物而闻名 。此曲创作于公元1886年,
  • 连续性在数学中,连续是函数的一种属性。直观上来说,连续的函数就是当输入值的变化足够小的时候,输出的变化也会随之足够小的函数。如果输入值的某种微小的变化会产生输出值的一个突然
  • 海门市海门市位于长江三角洲,是中华人民共和国江苏省南通市代管的县级市。位于江苏省东南部,地理坐标介于北纬31°46'-32°09',东经121°04'-121°32'之间。东濒黄海,南倚长江,与上海隔
  • 烤加州龙虾断沟龙虾(学名Panulirus interruptus),又名加州龙虾或加州刺龙虾,是分布在由加利福尼亚州蒙特利湾(Monterey Bay)至墨西哥特万特佩克湾(Gulf of Tehuantepec)的东太平洋的一种龙虾。
  • 谢尔盖·科萨科夫谢尔盖·谢尔盖耶维奇·科萨科夫(俄语:Серге́й Серге́евич Ко́рсаков,1854年1月22日-1900年5月1日),俄国神经学家。毕业于莫斯科国立大学,曾经访问维也
  • 病患自控式止痛病患自控式止痛(英语:Patient-controlled analgesia, PCA)是指任何能让病患自我管理,减轻、舒缓个人疼痛的方法。使用非处方药或处方镇痛药自我控管,是病患自控式止痛中最普遍的