函数指针

✍ dations ◷ 2025-11-25 08:39:24 #计算机技术

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


相关

  • 宿主宿主(英语:Host),也称为寄主,是指为寄生物包括寄生虫、病毒等提供生存环境的生物。最终宿主(primary host或definitive host)是指寄生物的成虫赖以寄生的物种。这类宿主通常为寄生
  • 氧化银电池氧化银电池,又称银锌电池或锌-氧化银电池,是以银的氧化物作正极、锌作负极、碱性溶液作电解质的一种电池。既可做成一次电池,也可做成蓄电池,但两者的其他辅助成分与制造方式有
  • 拉什拉什(法语:Râches)是法国上法兰西大区诺尔省的一个市镇,位于该省中东部,属于杜埃区。该市镇的总面积为4.87平方公里,2009年时的人口为2,740人。拉什人口变化图示数据来源:INSEE
  • 农场痘农场痘(Farmyard pox)为一群与副牛痘病毒(英语:parapoxvirus)相关的人畜共通性的传染性皮肤病:393。包含在此范畴内的疾病包含:393:Template:Cutaneous-infection-stub
  • 侯 洵侯洵(1936年12月6日-),陕西咸阳人,光电子学专家,中国科学院院士。任职于中科院西安光学精密机械研究所,《光子学报》主编。1959年毕业于西北大学物理系,1991年当选为中国科学院院士(
  • 726年前9世纪 | 前8世纪 | 前7世纪前740年代 前730年代 | 前720年代 | 前710年代 前700年代前731年 前730年 前729年 前728年 前727年 | 前726年 | 前725年 前724年 前723年 前7
  • 山猫山猫可以指:
  • 上甘棠村坐标:25°09′09″N 111°10′56″E / 25.15250°N 111.18222°E / 25.15250; 111.18222上甘棠村位于中国湖南省永州市江永县夏层铺镇,是以周姓为主的血缘聚落,2007年被列为中
  • 前子前子(英语:Preon)是在理论上构成夸克和轻子的亚原子粒子。这个粒子的名称首先由乔杰什·帕蒂(英语:Jogesh Pati)和阿卜杜勒·萨拉姆于1974年提出。
  • 大公路 (路竹区)大公路(Dagong Rd.)为高雄市路竹区西边近海岸郊区的南北向主要干道,本道路经竹沪地区,全线编号台17线。北起湖内、路竹区交界接和平路。南至路竹、永安区交界由保安路接续至弥陀