函数指针

✍ dations ◷ 2025-12-06 03:33:41 #计算机技术

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


相关

  • β-硝基丙酸β-硝基丙酸(3-硝基丙酸,BPA,3-NPA,C3H5NO4)是一种真菌毒素,其对线粒体有抑制作用对人体有毒。许多真菌产生这种毒素,因此广泛存在于食品如甘蔗,以及通过真菌发酵的日本主食味噌,酱油
  • 邢定钰邢定钰(1945年2月-),生于上海,籍贯江苏南京,中国物理学家,南京大学教授。现任南京大学微结构国家实验室(筹)主任。1967年毕业于南京大学,1981年在该校获硕士学位。2007年当选中国科
  • 景美溪景美溪,旧名雾里薛溪、景尾溪。是一条位于台湾北部的河流,为新店溪之支流,流域面积有113.72平方公里,全长约28公里。主流上源为永定溪,发源于台湾雪山山脉北端尾棱二格山系的火烧
  • 努纳武特地区努纳武特(英语、法语:Nunavut,伊努克提图特语:ᓄᓇᕗᑦ ,意指“我们的土地”),是加拿大13个一级行政区中三个地区/领地(Territory)中的一个,也是加拿大所有的一级行政区之中最晚成立的
  • 台湾小檗台湾小檗(学名:Berberis kawakamii)又名川上氏小檗是小檗科小檗属的植物,为台湾特有植物。生长于海拔2,200米至3,500米的地区,见于南湖大山、合欢山、阿里山等山区的山坡灌丛中和
  • 坪地坪地街道是中国广东省深圳市东北的一个街道,属深圳龙岗区管辖,北邻广东惠州市惠阳区、深惠公路及深惠高速公路横渡。
  • 印度海岸警卫队云雀III型直升机印度海岸警卫队(ICG),印度四个武装部队的其中之一,其使命是守卫印度共和国的海上利益。印度海岸警卫队的组织类似于其他的印度武装部队。它按海岸警卫队法创建于
  • 卡尔·菲利普·埃马努埃尔·巴赫卡尔·菲利普·埃马努埃尔·巴赫(德语:Carl Philipp Emanuel Bach,1714年3月8日-1788年12月14日),德国作曲家,J.S.巴赫的三子。C.P.E.巴赫早年从其父学习音乐,1740年到柏林任弗里德
  • 等离子灯等离子灯是一种装饰性的灯,在1980年代最为流行,商品名又名辉光球。等离子灯由物理学家尼古拉·特斯拉发明,他做了一个实验,在玻璃电子管通以高频率的电流,来研究高电压现象。特斯
  • 王替夫王替夫(1911年6月29日-2001年7月13日),满洲国外交官,曾拯救12000名犹太人。为驻德国柏林公使馆低阶外交官“公使馆理事官补”,1939年,纳粹德国外交部长里宾特洛甫因执行“排犹政策