函数指针

✍ dations ◷ 2025-12-11 07:19:39 #计算机技术

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


相关

  • 多发性硬化多发性硬化症(Multiple sclerosis,MS)是一种脱髓鞘性神经病变(英语:demyelinating disease),患者脑或脊髓中的神经细胞表面的绝缘物质(即髓鞘)受到破坏,神经系统的信号转导受损,导致一
  • 俄文俄语(俄语:ру́сский язы́к,罗马化:russkij jazyk,发音),中文也称俄文,为联合国官方语言之一。俄语属于斯拉夫语族的东斯拉夫语支,是斯拉夫语族中使用人数最多的语言,是俄
  • 免疫功能不佳免疫抑制(英语:immunosuppression)是指对于免疫应答的抑制作用。免疫抑制可由天然或人为因素导致。天然免疫抑制包括天然免疫耐受,机体可能会对自身组织成分不产生免疫应答。人
  • 鹅膏菌科鹅膏菌科(学名:Amanitaceae)是伞菌纲伞菌目的一个科,包含多种蕈类。本科最大的属为鹅膏菌属。真菌学的研究显示在伞菌目下面,各科之间的定义有着非常大的歧异度;并且现今的权威性
  • 真猛玛象真猛玛象(英语:Woolly mammoth,学名:Mammuthus primigenius)是已灭绝的猛玛象。在北美洲及欧亚大陆北部发现有它们的骨头及冷藏的尸体,而保存最完好的是在西伯利亚。已知最古老(15
  • 杨 剑杨剑(1960年-),江西南昌人。汉族。中国人民解放军少将军衔。中国共产党党员。国防大学联合战役指挥专业毕业。曾任济南军区54军127师师长、济南军区20军副军长等职。至晚于2014
  • 赌场赌场,又称娱乐场,是专供赌博的地方。常指合法经营的多种赌博场所,非法的聚赌地方一般称为赌窟或赌坊。赌场多数是提供赌客与赌场庄家的对赌。常见提供的博彩方法有:角子老虎机、
  • 东北特钢集团东北特殊钢集团有限责任公司简称东北特钢,是一间中国地方国企。公司控股股东为辽宁省国有资产监督管理委员会(68.8069%)。其他股东为黑龙江省国有资产监督管理委员会(14.5191%)及
  • 八文字DNA八文字DNA(英语:Hachimoji DNA,Hachimoji源自日语“八文字”的发音),是一种人工合成的核酸类似物,除含有四种天然DNA中含有的碱基腺嘌呤(A)、胸腺嘧啶(T)、鸟嘌呤(G)、胞嘧啶(C)外,还含有另
  • 诺尔提亚诺尔提亚(英语:Nortia)。伊特鲁里亚女性神祇之一。古罗马历史学家蒂托·李维曾对其祭祀礼仪有所记述。亦于艺术作品以及石刻铭文中得到广泛反映,影响深远。