函数指针

✍ dations ◷ 2025-11-21 08:06: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;}


相关

  • 寒武纪-奥陶纪灭绝事件寒武纪-奥陶纪灭绝事件是约于4.88亿年前,第一次发生的生物集群灭绝事件。这次事件发生在显生宙,结束了古生代的寒武纪,并进入奥陶纪。当时消灭了很多腕足动物门、牙形石及严重
  • 杰夫·默克利杰弗里·艾伦·“杰夫”·默克利(英语:Jeffrey Alan "Jeff" Merkley ;1956年10月24日-),是一位美国民主党政治人物,自2009年成为俄勒冈州联邦参议院议员。此前他曾是俄勒冈州众议院
  • CD274n/an/an/an/an/an/an/an/an/an/a细胞程序死亡-配体1(英语:Programmed cell death 1 ligand 1,PD-L1)也称为表面抗原分化簇274('cluster of differentiation 274,CD274)或 B7同源体1
  • 淘沙市塔尔萨(英语:Tulsa,/ˈtʌlsə/,台译土尔沙)是美国俄克拉荷马州东北部的塔尔萨县首府,也是该州人口第二多城市,2006年人口387,807,2013年估计人口398,121。塔尔萨附近是阿肯色河。这
  • 统一超商统一超商(简称统一超)是台湾一家连锁便利商店,也是统一企业关系企业,拥有7-Eleven在台湾的永久经营权,以加盟连锁的方式授权经营台湾的7-Eleven。统一超商目前至2020年1月已拥有
  • 高 峰高峰可以指:
  • 美国深南部深南部(Deep South 或 Lower South),又称为棉花州(Cotton States),也常被译为南方腹地,是美国南部的文化与地理区域名称,与“上南方”(Upper South)相对。深南部并没有统一的定义,一般
  • 猫咪咖啡馆猫咪咖啡馆是一类以猫为主题的咖啡馆,除了像普通咖啡馆一样提供有咖啡和其他饮料零食,馆内还会有一些猫陪伴顾客。此外,猫咪咖啡馆里的装饰也往往会有很多和猫有关的艺术作品,如
  • 应激应激(英文:Stress)或心理压力,是一种反应模式,指动物机体受到外界不良因素刺激后,在没有发生特异的病理性损害前所产生的一系列非特异性应答反应。当刺激事件打破了有机体的平衡和
  • 希腊诸神谱系希腊神话中的奥林匹斯十二主神以粗体显示。