函数指针

✍ dations ◷ 2025-11-19 18:40:08 #计算机技术

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


相关

  • 汉斯·贝特汉斯·阿尔布雷希特·贝特(德语:Hans Albrecht Bethe,1906年7月2日-2005年3月6日),德国和美国犹太裔核物理学家,对于天体物理学,量子电动力学和固体物理学有很重要的贡献。由于恒星
  • 刘广均刘广均(1929年7月15日-),中国同位素分离专家。回族。生于天津。1952年毕业于清华大学物理系。核工业理化工程研究院高级工程师。1991年当选为中国科学院院士(学部委员)。
  • 内弗尔卡拉一世内弗尔卡拉(Neferirkare,希腊语:Νεφερχέρης)是古埃及第五王朝的第三位法老,大约在前25世纪间在位约10年(一说20年)。他是萨胡拉的弟弟,也是第一个拥有二个王名的法老,修建
  • 环境与资源评论年刊《环境与资源评论年刊》(Annual Review of Environment and Resources)是一份1976年起发行的学术期刊。该期刊每年仅出版一次,内容涵盖环境工程、生态学、保护科学(英语:Conserva
  • 明器陪葬品又称殉葬品、冥器、明器,通常人死后亲属会将死者生前惯用的物品或藏品与死者一同埋葬,为殉葬品的基本由来。社会阶级产生后,帝王、富人或贵族则根据其富裕程度或位阶的大
  • 卢森堡军事卢森堡大公国军,即对卢森堡所拥有的武装部队的统称,卢森堡军人分为两大军种,包括卢森堡陆军和卢森堡空军,由于卢森堡是一个内陆国家,卢森堡不拥有海军。2011年,卢森堡军费为$301,0
  • 大键琴大键琴(意大利语:clavicembalo;德语:Cembalo;法语:clavecin;英语:harpsichord),也称拨弦键琴或羽管键琴,出现于14世纪左右,是一种从15世纪文艺复兴时期到18世纪巴洛克时期盛行于欧洲的乐
  • 王迅 (物理学家)王迅(1934年4月23日-),籍贯江苏无锡,出生于上海,表面物理、半导体物理学家,中国科学院院士。著名计算机科学家王选之兄。王迅出生于无锡望族,曾祖父王縡为清同治年间进士。父亲王守
  • 罗曼·罗兰罗曼·罗兰(法语:Romain Rolland;1866年1月29日-1944年12月30日),20世纪的法国著名作家、音乐评论家,1915年度的诺贝尔文学奖得主。1867年出生于法国中部的克拉梅西,1880年全家迁至
  • .NET框架.NET框架(英語:.NET Framework)是由微软开发,一个致力于敏捷软件开发(agile software development)、快速应用开发(rapid application development)、平台无关性和网络透明化的软件