函数指针

✍ dations ◷ 2025-11-20 07:53:35 #计算机技术

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


相关

  • 可接受每日摄入量一日可接受摄取量 或 ADI 是指食物或饮用水中特定物质每天不影响健康下口服可摄入量。最初适用于食品添加剂,后来也适用于兽药或农药残留物。ADI通常以每公斤体重每天可摄取
  • 社会科学环境社会科学是人类与自然环境之间相互关系的广泛的跨学科研究课题。环境社会科学家在人类学、传播学、经济学、地理学、历史学、政治学、心理学和社会学等学术领域中开展研
  • 夫琅和费约瑟夫·冯·夫琅和费(Joseph von Fraunhofer,发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Co
  • 昭宣之治昭宣之治又称昭宣中兴,为西汉汉昭帝和汉宣帝在位时期(约为公元前87年至前49年)着重休养生息,以恢复汉武帝在位时严重损耗的国力,并将汉朝国力推上太平盛世。后世历史学家评定此段
  • 键级键序为成键轨道中的电子数与反键轨道中的电子数之差的一半。若将其写成数学式则可表示成:b = n −
  • 卡纳塔克邦卡纳塔克邦(卡纳达语:ಕರ್ನಾಟಕ,印地语:कर्नाटक,拉丁字母转写:Karnataka),位于印度南部。作为印度的资讯工业重地,该邦首府班加罗尔有“印度硅谷”之称。卡纳塔克邦有人
  • 农业地理学农业地理学是研究人类农业生产地域的差异及其规律的学科,是经济地理学的一个分支学科,也是农业科学的一个研究领域。农业与各个不同地域的自然条件、社会经济条件、人口密度和
  • ICL地震预警技术系统ICL地震预警技术系统,也称大陆地震预警系统,是在中国大陆建成的一个地震预警系统,可以在地震波到达各地前的一段时间差内生成地震预警警报,向手机、电脑、广播、电视、专用接收
  • 东源县东源县位于中国广东省东北部,东江中上游,属于河源市管辖,东边与河源市龙川县、梅州市五华县相邻,南边河源市源城区、紫金县相邻,西边与惠州市龙门县、韶关市新丰县相邻,北边与河源
  • 马恩河谷省马恩河谷省(法语:Val-de-Marne),或音译为瓦勒德马恩省,是法国法兰西岛大区所辖的省份。该省位于巴黎东南方。该省编号为94。该省得名于马恩河。总面积245平方公里 (95平方英里),总