函数指针

✍ dations ◷ 2025-12-01 05:29:57 #计算机技术

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


相关

  • 蝶酰谷氨酸叶酸(Folate、folic acid)也称为维生素B9、维生素M、维生素Bc,属于维生素B。叶酸可用于治疗由叶酸缺乏症引起的贫血。叶酸也是孕妇的营养补充品。在新生儿的神经管缺损(英语:Neur
  • 羰基化合物化学上,羰基化合物可以有不同的含义。
  • 弗朗索瓦·库普兰弗朗索瓦·库普兰(法语:François Couperin,1668年11月10日-1733年9月12日),法国著名的音乐家族库普兰家族成员,作曲家路易·库普兰的侄子,巴洛克时期著名作曲家,也是最伟大的羽管键
  • 东京时间日本标准时间(日语:日本標準時;英语:Japan Standard Time;缩写:JST)是日本所采用的标准时间,比世界协调时快九小时(即UTC+9),与韩国标准时间、印尼东部时间(英语:Time in Indonesia)、雅库
  • 圣路易市圣路易斯(英语:St. Louis),是美国密苏里州唯一的独立市,也是该州第二大城市(第一大城市为堪萨斯城)。市内人口为308,626人,为美国按人口排名第58大城市。圣路易位于密苏里河和密西西
  • 约瑟夫森布赖恩·约瑟夫森(英语:Brian Josephson,1940年1月4日-),英国物理学家,犹太人,生于威尔士卡地夫。在22岁,尚是一个博士生时,他就提出约瑟夫森结这一概念,并凭此赢得1973年诺贝尔物理学
  • 奇珀瓦奇珀瓦国家森林(英语:Chippewa National Forest)是美国的一处国家森林,1908年建立,位处明尼苏达州中北部的伊塔斯加县、卡斯县和贝尔特拉米县,占地面积666,623英亩(2,697.73平方千
  • 好猫咪咪好猫咪咪是上海美术电影制片厂的一部动画片。讲述一只小懒猫咪咪因懒惰疏于练功,以至被一群老鼠欺负;之后奋发图强,洗心革面,练出高超捕鼠本领的故事。故事风趣幽默,又不失教育意
  • 欧洲LGBT权益女同性恋者、男同性恋者、双性恋者与跨性别者(LGBT)在欧洲的权益受到欧洲联盟与多国法律的保障。全球25个承认同性婚姻的国家中,有15个在欧洲,同时英国的英格兰、威尔士、苏格兰
  • 远程过程调用在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算