函数指针

✍ dations ◷ 2025-12-08 16:49:27 #计算机技术

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


相关

  • 群马大学群马大学群马大学(ぐんまだいがく、Gunma University)1949年设立的群马县的国立大学法人。校区分为:前桥市荒牧地区(教育学部和社会信息学部所在地)、前桥市昭和地区(医学部所在地
  • 云杉5 种云杉(学名:Picea asperata)为松科云杉属的一种,是原产于中国西部的特有树种,主要分布于青海东部、甘肃南部、陕西西南与南部、到四川西部一带。云杉为多年生长绿乔木,栖息在海
  • 若雷斯·阿尔费罗夫京都奖尖端科技奖 (2001)诺贝尔物理学奖 (2000)若列斯·伊万诺维奇·阿尔费罗夫(俄语:Жоре́с Ива́нович Алфёров,1930年3月15日-2019年3月1日),俄罗斯物理
  • 缩乳缩胸(缩乳)是一种乳房整型手术,目的是为了缩小女性过大的乳房。一般都是为了健康理由而做的,但也有为了改善身材而做。此外,亦有从女性变性为男性的人透过缩胸手术来使身型变得更
  • 露薏丝·蕾娜路易丝·赖纳(英语:Luise Rainer,1910年1月12日-2014年12月29日)是出生在德国的美国电影演员,也是犹太人。1936年和1937年主演《歌舞大王齐格菲》《大地》连续荣获第9届、第10届奥
  • Hatch-Waxman法案药品价格竞争与专利期补偿法案(英语:Drug Price Competition and Patent Term Restoration Act),又称为哈奇-韦克斯曼法案(Hatch-Waxman Act),是一部于1984年颁布的美国联邦法案。该
  • 调频电台调频广播(英语:Frequency Modulation Broadcast,常缩写为FM广播)是一种以频率调制技术来传送高保真声音的无线电广播技术,由爱德温·霍华·阿姆斯壮(Edwin Howard Armstrong)发明。
  • 布里斯托尔坐标:41°40′52″N 72°56′26″W / 41.68111°N 72.94056°W / 41.68111; -72.94056布里斯托尔(英语:Bristol),绰号铃城 (Bell City)和菊城 (Mum City),是美国康乃狄克州哈特福德县
  • 第二次海湾战争伊拉克 (复兴党政权) 阿拉伯复兴社会党-伊拉克地区 Supreme Command for Jihad and Liberation 纳克什班迪教团军 Tanzim Qaidat al-Jihad fi Bilad al-Rafidayn Islamic Sta
  • 无线电频谱无线电波是频率介于3赫兹和约300吉赫之间的电磁波,也作射频电波,或简称射频、射电。无线电技术将声音讯号或其他信号经过转换,利用无线电波传播。射频技术也用在核磁共振及磁振