函数指针

✍ dations ◷ 2025-11-18 23:34:42 #计算机技术

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


相关

  • 树人医护管理专科学校中华民国高雄市路竹区环球路452号1969年创校 2000年改制为专科学校树人医护管理专科学校(英语: Shu-Zen Junior College of Medicine and Management ,缩写为SZMC)简称树人医专
  • 新视野号新视野号(New Horizons)又译新地平线号,是美国宇航局旨在探索矮行星冥王星(在发射时间仍然被认为是一颗行星)和柯伊伯带的行星际机器人航天器任务,它是第一艘飞越和研究冥王星和它
  • 鳞翅目鳞翅目(学名:Lepidoptera),又名蝶蛾目、螟蛉目,是昆虫纲中第二大的目,包括各种蝴蝶和蛾类(并系群)。鳞翅目昆虫是完全变态生物(卵、幼虫、蛹、成虫)。成虫有两对翅膀,上面覆满鳞粉,口器
  • 旗山溪旗山溪,又名楠梓仙溪,系为古称楠樟仙溪记叙错误而成;现今交通相关标志与图标设施皆已改名为“旗山溪”,惟在观光、保育与地方上等相关方面仍称“楠梓仙溪”。原住民语称为Namasi
  • 蘑菇属伞菌属(Agaricus),又名蘑菇属,是蘑菇科下的一个大型及重要的属,包括了可吃菇及有毒菇,在全世界合共超过300个物种。
  • 虾子面鸡蛋面是中国南方面食的一种,通过鸡蛋和面粉的混合作出鸡蛋面。鸡蛋面面质柔滑,在中国传统小吃中用的非常广泛,例如著名福建小吃拌面的主材料就是鸡蛋面。
  • 关税税则1999年规定:印章直径5厘米,中央刊五角星,由国务院制发。国务院关税税则委员会,简称国务院税委会,是中华人民共和国国务院成立的国务院议事协调机构,负责关税税则。1987年3月7日,《
  • 智利毛皮海狮智利毛皮海狮(学名:Arctocephalus philippii)主要分布于智利胡安·费尔南德斯群岛,是鳍足亚目中体型第二小的物种,16世纪发现。
  • 也门犹太人也门犹太人,是生活在也门的犹太人社群。他们的历史非常悠久,在圣经所罗门王时代已生活在也门,但在第一次中东战争后因反犹太主义高涨,以色列在1949年6月至1950年9月发起“魔毯行
  • 4f14 5d10 6s2 6p1 2, 8, 18, 32, 18, 3蒸气压 第一:589.4 kJ·mol−1 第二:1971 kJ·mol−1 主条目:铊的同位素 铊(拼音:tā,注音:ㄊㄚ,粤拼:taa1;英语:thallium)是化学元素,符号为Tl