函数指针

✍ dations ◷ 2025-11-16 14:43:40 #计算机技术

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


相关

  • 北江省北江省(越南语:Tỉnh Bắc Giang/.mw-parser-output .han-nom{font-family:"Nom Na Tong","Han-Nom Gothic","Han-Nom Ming","HAN NOM A","HAN NOM B","Ming-Lt-HKSCS-UNI-H","
  • 经典逻辑经典逻辑(英语:Classical logic),又称古典逻辑,标识已经被最深入的研究和最广泛的使用的一类形式逻辑,也被称为标准逻辑(standard logic)。经典逻辑被特征化为一些性质,非经典逻辑缺
  • 反微中子物理学中的反中微子为中微子的反物质,是核反应β衰变产生出来的中性粒子。它们拥有自旋1/2并属于轻子类费米子。目前为止,所有探测到的反中微子都有右旋性,而所有中微子都是左
  • 甲烯在化学中,甲烯(英语:methylene)是由一个碳原子和两个氢原子组成的化合物,又称亚甲基或甲烯基,其化学式为CH2。在自然状态下,不会存在甲烯,除非是在低温、低压的特殊状态下,才可能有此
  • 平南平南县是中国广西壮族自治区贵港市所辖的一个县。总面积为2988平方公里,2013年人口为140多万。清光绪《平南县志》卷一载胡南藩《重修南平县志叙》称:“晋陶侃平交南,执刘沈于
  • 前连合前连合(英语:Anterior commissure)是脑的一束神经纤维(即白质纤维)。它位于大脑的中线,其中的神经纤维连接大脑的两个半球。在中矢面内,前连合呈椭圆形。在人类,其长轴大约为5毫米长
  • 唐纳德·萨瑟兰唐纳德·爱德华·麦克尼克·萨瑟兰(Donald Edward McNichol Sutherland,1935年7月17日-),加拿大籍英裔苏格兰人,著名演员,曾参演《饥饿游戏》电影系列。1935年出生于加拿大圣约翰市
  • 旅级战斗队旅级战斗队(英语:Brigade combat team, BCT)是美国陆军的一种基础部署单位。一支旅级战斗队通常包含多个兵种,单位大小多与旅相同,而且配有支援与火力单位;指挥官多为上校,但在某些
  • 安扎克级巡防舰安扎克级巡防舰,或者纽澳军团级巡防舰(英语:-class frigate)是以德国MEKO 200型为基础设计修改,由澳大利亚Tenix防卫系统公司建造的巡防舰。采用模组化设计,舰上设备由新西兰和澳
  • 本因坊丈和本因坊丈和(1787年-1847年),生于信浓国水内郡,乳名戶谷松之助,日本围棋棋手。父亲为商人,松之助从小即喜碁,于是其父在江户经商时将其送入坊门。其父过世时,因继承地位的纷争,少年时期