函数指针

✍ dations ◷ 2025-08-13 03:06:29 #计算机技术

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


相关

  • 马修·卡索维茨马修·卡索维茨(Mathieu Kassovitz,1967年8月3日-),法国电影演员及导演制片人编剧,27岁便凭法国电影《恨》获得戛纳电影节最佳导演奖。他还出演过电影《天使艾米丽》中的男主角。
  • 横纹肌肉瘤横纹肌肉瘤(Rhabdomyosarcoma,简称 RMS)是发生自胚胎间叶组织的恶性肿瘤,发生率低于恶性纤维组织细胞瘤和脂肪肉瘤。横纹肌肉瘤占儿童实体肿瘤的15%,软组织肉瘤的50%。儿童、青年
  • Plasmodium疟原虫属(Plasmodium)是一类单细胞、寄生性的囊泡虫。本属生物通称为疟原虫。本属生物中有五种疟原虫会使人类感染疟疾,包括恶性疟原虫(Plasmodium falciparum)、三日疟原虫(Plasm
  • 肺吸虫卫氏肺吸虫(学名:Paragonimus westermani,又译卫氏并殖吸虫)为斜睾目住胞科并殖属的动物。是一种扁平似似咖啡豆的寄生虫,是肺吸虫症致病原中最重要者,必须透过数种中间宿主才能感
  • 首尔火车站首尔站(朝鲜语:서울역/서울驛 Seoullyeok */?)位于韩国首尔特别市龙山区南营洞与中区会贤洞,是京釜线、京义线、首尔地铁1号线、首尔地铁4号线与仁川国际机场铁道交会的铁路车
  • 孟语孟语(孟语:ဘာသာ မန်,缅甸语:မွန်ဘာသာ)是南亚语系主要由生活在缅甸和泰国的孟族人讲的语言。它和高棉语很像,都不是声调语言,这和大多数中南半岛的语言不同。使用孟
  • 梨树梨树县是吉林省四平市下辖的一个县。梨树县为中国肉类生产第七大县市。下辖辖14个镇、6个乡,以及2个类似乡级单位: 梨树镇、郭家店镇、榆树台镇、小城子镇、喇嘛甸镇、蔡家镇
  • 里氏震级里氏震级(英语:Richter magnitude scale,港澳称黎克特制地震震级,台湾称芮氏地震规模),亦称近震震级(记作 M L
  • 奥卡拉国家森林奥卡拉国家森林(英语:Ocala National Forest)是美国佛罗里达州境内面积第二大的国家森林,位于佛罗里达州中部地区(英语:Central Florida)。面积607平方英里(1,570平方千米),位于奥卡拉
  • 尤莉·古德胡斯尤莉·古德胡斯(德语:Juli Gudehus,1968年-)是一位德国女性图像设计师。最早她出版了《Genesis》一书,并逐渐出名。她采用新的图像语言来诠释人们已熟悉的商标和标记。1993年,《Die