函数指针

✍ dations ◷ 2025-11-29 13:48:14 #计算机技术

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


相关

  • 翻译后修饰翻译后修饰(英语:Post-translational modification,缩写PTM;又称后翻译修饰)是指蛋白质在翻译后的化学修饰。对于大部分的蛋白质来说,这是蛋白质生物合成的较后步骤。PTM是细胞信
  • 索非娅·罗兰索非娅·罗兰(意大利语:Sophia Loren,1934年9月20日-),意大利国宝级女演员,也是好莱坞著名女演员,第34届奥斯卡影后、终身成就奖、金球奖等众多国际重磅级电影奖项得主。索非娅·罗
  • 咒怨《咒怨》(日语:呪怨)是一部在2003年上映的电影。由清水崇导演和编剧,是咒怨系列的第一集,在2003年1月25日在日本发行。台湾方面,首周三天台北票房为新台币1800万元、全台票房为新
  • 醇盐醇盐或称烷氧基化合物,是醇中的羟基氢被金属取代后形成的一类化合物,形式上含有醇盐(烷氧基)负离子RO–,其中R为有机取代基。醇盐具有很强的碱性,取代基R的体积不大时,还是很好的亲
  • 太阳周期太阳周期,或是太阳磁场活动周期是太阳的各种现象,包括太空天气后面的动态引擎和能量来源。通过氢磁流体发电机的程序供给的能量,诱导太阳内部的流动,形成太阳周期。太阳周期是在
  • 爸爸出差时《爸爸出差时》(塞尔维亚-克罗地亚语:Otac na službenom putu, Отац на службеном путу)是1985年由艾米尔·库斯杜力卡执导的南斯拉夫电影,并于第38届戛纳
  • 程序记忆内隐记忆(implicit memory),又称为程序记忆(procedural memory),一种长期记忆的形式,指关于技术、过程、或“如何做”的记忆。记忆有时候会被贮存在程序记忆(procedural memory)中,当
  • 倒角四面体在几何学中,倒角四面体(英语:Chamfered Tetrahedron),又称为交错截角立方体(英语:Alternate Truncated Cube)是一种凸多面体,透过交替地将立方体截去顶点或在将四面体进行倒角操作—
  • 印尼死刑制度在印尼的法律(印尼语:Kitab Undang-undang Hukum Pidana),共有16种犯罪可能会被判处死刑。虽然《印尼宪法(英语:Constitution of Indonesia)》中明订人民的生命权应获得保障,不过根
  • 肉圆 (台湾)肉圆(英文:Ba-wan)(台罗:Bah-uân;白话字:Bah-oân)是一种台湾的特色街头市民小吃,名称源自于其外观,肉圆一般为直径6~8公分左右的半透明扁圆形,是一种以地瓜粉、太白粉、或在来米粉、