函数指针

✍ dations ◷ 2025-12-07 18:04:44 #计算机技术

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


相关

  • 尘卷风尘卷风(dust devil)又称为尘暴等是一种强劲、明显形状、存在期相当长的旋风,尺寸从小型(宽度约为1米,高度约为几米)到大型(宽度大于10米,高度大于1000米)。尘卷风通常不会造成损害,但
  • 蓝岭山脉蓝岭山脉(英语:Blue Ridge Mountains)是美国东南部的山脉,为阿帕拉契山脉的东段。从宾夕法尼亚州南部起,经马里兰州、维吉尼亚州和北卡罗莱纳州到乔治亚州,东北-西南走向延伸约1050
  • 1993年 布法罗第十七届夏季世界大学生运动会于1993年7月8日至7月18日在美国纽约州水牛城举行。共有来自117个国家,一共5105名运动员参加。*  主办国家/地区(美国)
  • 红壤红土,指富含氧化铁,氧化铝,水氧化铁,水氧化铝,二氧化铁,二氧化铝的土,因富含氧化铁以致土壤发出棕色颜色,土质最好为黑土,最差为红土。 因长年下雨,导致腐植质储存不易,仅留下较重的氧
  • 仲夏仲夏节是夏至来临时的庆祝活动,在北欧是一个重要的节日。仲夏节在挪威、丹麦、芬兰及瑞典都是公众假期。仲夏节是欧洲北部地区居民的重要传统节庆活动,在东欧、中欧、英国、爱
  • 中央省厅政治主题日本的行政机关,指日本负责国家行政事务的政府机关,主要是内阁下属的各政府机关。相对于地方公共团体(地方政府),称作为中央官厅、中央省厅(Central Government),或简称为省
  • 江海区江海区是中国广东省江门市的一个市辖区,位于广东省的中部偏西。总面积为107平方公里,2018年人口为17.25万。明、清时期,今江海区域地归新会县潮连司辖。民国期间,除江南一带一度
  • 秦怡秦怡(1922年1月31日-),原名秦德和,女,祖籍江苏高邮,生于上海,中国电影、话剧、电视剧演员,中国共产党党员。秦怡遭逢抗日战争这大环境下,被迫于1938年赶赴重庆,投入中国电影制片厂任为
  • 发展研究中心发展研究中心(英语:Centre for Development Studies,简称CDS),是一个位在印度喀拉拉邦特里凡得琅的社会科学研究机构。其主要目标是促进研究、教学和培训以促进相关领域的发展。
  • 同性恋炸弹同性恋炸弹(Gay bomb)是一种不致命、虚构化学武器的名称。1994年,美国俄亥俄州的Wright-Patterson实验室上呈了一份三页的建议书,内容关于一系列的不致命化学武器。这份建议书经