函数指针

✍ dations ◷ 2025-11-19 11:38:52 #计算机技术

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


相关

  • 新喀里多尼亚面积国家领袖国内生产总值(国际汇率) 以下资讯是以2011年估计新喀里多尼亚(法语:Nouvelle-Calédonie),位于南回归线附近,是法国在大洋洲西南部的一个特别集体(Collectivité sui ge
  • 安省安省可以指:
  • 琉球语琉球语(冲绳语:ルーチューグチ),又称岛言叶(しまくとぅば),属日本琉球语系,分布在冲绳县、鹿儿岛县奄美群岛,是对琉球群岛(包括奄美群岛及冲绳群岛)一系列本土语言的统称。由于各种琉球
  • 拉姆齐威廉·拉姆齐爵士,KCB(英语:Sir William Ramsay,1852年10月2日-1916年7月23日),英国化学家,1904年诺贝尔化学奖获得者。威廉·拉姆齐1852年出生于格拉斯哥。其叔父安德鲁·拉姆齐(英
  • 北海道2019冠状病毒病北海道疫情(日语:北海道における2019年コロナウイルス感染症の流行/ほっかいどうにおける2019ねんコロナウイルスかんせんしょうのりゅうこう),介绍日本的2019冠状
  • 未来统合党外交 · 南北统一 · 阳光政策 · 行政区划 · 人权(朝鲜语:대한민국의 인권)政治主题未来统合党(韩语:미래통합당/未來統合黨 Mirae Tonghap Dang;也译作未来联合党),简称统合
  • 美国商业服务局美国商务服务局(CS)是美国商务部国际贸易署(英语:International Trade Administration)对促进贸易的有力臂膀,帮助美国公司在国际范围内成功运作。美国商务服务局由商务部次长领导
  • 米厘米厘可以指:
  • 多伦多大学约翰·H·丹尼尔建筑、地形与设计学院约翰·H·丹尼尔建筑、地形与设计学院(英语:John H. Daniels Faculty of Architecture, Landscape, and Design)是加拿大多伦多大学的一个学术学院,它提供在建筑、景观设计、城
  • 布尔诺椅布尔诺椅 (型号 MR50,)是一个现代悬臂式座椅,在1929-1930年间由路德维希·密斯·凡德罗和莉莉·瑞希为布尔诺的图根哈特别墅所设计。在设计布尔诺椅之前,路德维希·密斯·凡德