函数指针

✍ dations ◷ 2025-12-09 07:02:47 #计算机技术

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


相关

  • 病理人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学病理学(pathology)是医学领域的一门分支
  • 生态赤字生态赤字是用以描述一个地方的资源消耗及制造垃圾的程度超出当地可持续的自然生态产出能力及纳污能力。生态赤字亦被用于表达生产某个群落(例如一个城市)所耗用的资源所需的土
  • 佳木斯市佳木斯市(满语:ᡤᡳᠶᠠᠮᡠᠰᡳ,穆麟德:Giyamusi,太清:Giyamusi)是中华人民共和国黑龙江省下辖的地级市,是中国最东边的地级行政区。名字来源于满语,佳木斯为驿丞。一说意为“巫师(萨
  • 休闲潜水指以娱乐休闲观光为目的的潜水活动,其最大潜水深度一般不超过水下30米,极限为水下40米。40米以下为技术潜水(英语:Technical diving)范畴。有下列情况者不应进行水下潜水活动:游泳
  • 鱼石螈鱼石螈(学名Ichthyostega)是一属坚头类,生存于3亿6千5百万至3亿6千万年前的晚泥盆世,是鱼类及两栖类的中间生物,从尾部等体型看类似现代的鲶鱼长了脚。鱼石螈有脚,但却可能不是用
  • 广州菜广州菜,又名广府菜,是八大菜系之一的粤菜的主体和代表,是涵盖了以广东省城为中心的珠江三角洲及西、北江流域、旧广州湾的湛江以及雷州半岛各县、市为范围的烹饪技艺、菜式。鸦
  • 阿古斯丁·佩德罗·胡斯托阿古斯丁·佩德罗·胡斯托·罗隆(西班牙语:Agustín Pedro Justo Rolón,1876年-1943年),阿根廷军官、外交官和政治家,阿根廷总统(1932—1938年)。胡斯托出生于恩特雷里奥斯省乌拉圭
  • 特洛伊木马特洛伊木马是木马屠城记里,希腊军队在特洛伊战争中,用来攻破特洛伊城的那匹木马。值得注意的是,木马屠城记并非于古希腊诗人荷马的两部著作伊利亚特与奥德赛里记载,而是在罗马帝
  • 诺贝尔化学委员会诺贝尔化学委员会(瑞典语:Vetenskapsakademiens Nobelkommitté för kemi)是负责推举诺贝尔化学奖得主的诺贝尔委员会,成员由瑞典皇家科学院任命。通常由科学院化学学部的瑞典
  • 毕彦君毕彦君(1955年7月-),辽宁省鞍山市人,中国男演员、导演。现为国家一级演员。与著名女演员陈晓旭有过一段短暂的婚姻。