函数指针

✍ dations ◷ 2025-11-17 14:57:02 #计算机技术

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


相关

  • 地特胰岛素注射液地特胰岛素注射液(英文名:insulin Detemir)为长效胰岛素类似物,无色澄明液体,用于治疗糖尿病。其成分主要为地特胰岛素(通过基因重组技术,利用酵母生产的)。1单位(U)相当于0.142mg不含
  • 人类交流人类交流是致力于理解人们沟通的领域.
  • 显灵显灵(英语:Theophany),泛指一种超自然现象。指上帝、神灵、佛、菩萨,或圣人的灵魂、一般亡灵,向个人或少数群体短暂性显现出来给他们看,有时会向这些特定人士告知一些重要的信息。
  • 生态工程生态工程(英语:Ecological engineering)是指人类通过生态学、系统学、工程学和经济学等学科的基本原理和方法,利用设计、调控和技术组装的手段,对原有平衡被打破的生态系统进行修
  • 拍米拍米(英式英语:Petametre,美式英语:Petameter,符号Pm)是一个长度单位。1 拍米=1015米。米(m) · 尧米(Ym) · 泽米(Zm) · 艾米(Em) · 拍米(Pm) · 太米(Tm) · 吉米(Gm) · 兆米(Mm) · 千米(km)
  • 土壤科学土壤科学是土壤作为自然资源在地球表面上的研究,包括土壤形成,分类和映射;土壤的物理,化学,生物和肥力性质;以及与使用和土壤管理有关的这些性质。有时,涉及土壤科学分支的术语,如土
  • 松球鱼松球鱼科(学名:Monocentridae)又称松球鱼科是辐鳍鱼纲金眼鲷目的其中一科。松球鱼科下分2个属,如下:
  • 陆军野战医院《陆军野战医院》(英语:MASH)是一套1970年首映的美国讽刺式黑色幽默电影,由罗伯特·奥特曼执导,唐纳德·萨瑟兰及罗伯特·杜瓦尔等主演。英文原名是“陆军流动外科医院(英语:Mobile
  • 萨帕鲁阿岛萨帕鲁阿岛是印度尼西亚马鲁古省的岛屿,属于摩鹿加群岛的一个珊瑚岛,位于安汶岛以东的班达海,面积144平方公里,岛上最高点海拔331米,有45,000居民。行政上由中马鲁古县管理。坐标
  • 足部穿着足部穿着是指穿着在足部的衣物,用于克服环境带来的身体损伤,通常针对地形和温度。因此,鞋子主要用于减轻运动受伤的目的。其次,鞋类还可以用于时尚和装饰用途,以及指示人在社会结