函数指针

✍ dations ◷ 2025-11-18 17:12:24 #计算机技术

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


相关

  • 木瓜蛋白酶木瓜蛋白酶(英语:papain),或简称木瓜酶、木瓜酵素,又称嫩精或木瓜粉,是存在于番木瓜果实中的一种半胱氨酸蛋白酶。木瓜蛋白酶对于嫩化肉类起着重要作用,市面上更多称为松肉粉或嫩肉
  • 埃利伟氏症候群埃利伟氏综合征(Ellis-van Creveld Syndrome、EVC)又称为软骨外胚层发育不良(chondroectodermal dysplasia),是一种罕见遗传疾病,也是骨骼发育不良的类型之一。这种疾病会造成包括
  • 国家实验室美国能源部国家实验室与技术中心是指在美国能源部监管之下的一系列研究设施和实验室系统,目的是促进科学的研究和技术的进步,进而推动完成美国能源部的使命。截至2017年,美国能
  • 毕加索博物馆毕加索美术馆(法语:Musée Picasso)是位于法国首都巴黎第三区的一座美术馆。也称国立巴黎毕加索美术馆(法语:Musée National Picasso ,Paris)。美术馆主要收藏毕加索的作品。建筑
  • 伊丽莎白·布雷克本伊丽莎白·海伦·布莱克本,FRS(英语:Elizabeth Helen Blackburn,1948年11月26日-),分子生物学家,生于澳大利亚、现居美国,拥有澳、美两国国籍,现任加利福尼亚大学旧金山分校生物化学与
  • 托勒密九世托勒密九世(救主二世)Πτολεμαίος Θ' Σωτήρ Β' ή Λάθυρος 埃及托勒密王朝国王,先后在位三次(前116年—前110年前109年—前107年,前88年—前80年)。他的统
  • ʡ会厌塞音(epiglottal stop)是辅音的一种,它在国际音标中的符号是⟨ʡ⟩,在X-SAMPA中的符号则是⟨>\⟩。会厌塞音的特点有:当符号成对出现时,左边的是清音,右边的是浊音。阴影区域表
  • 海鬣蜥海鬣蜥(学名:Amblyrhynchus cristatus),又名加拉帕戈斯海鬣蜥或钝鼻蜥,是仅出没在科隆群岛的鬣蜥科物种,独有在海中生活及觅食的能力。它们分布在群岛的所有岛屿上。它们主要栖息
  • 层孔虫纲层孔虫(Stromatoporoids)是一类古老的海生无脊椎动物,生存于寒武纪至白垩纪,在志留纪及泥盆纪最为繁盛,常形成礁体,石炭纪至三叠纪无化石记录,中生代仅有少数代表,现已完全灭绝。于1
  • 布莱德雷欧洲盟国远征军最高司令部美墨边境服役第二次世界大战奥马尔·纳尔逊·布拉德利(英语:Omar Nelson Bradley,1893年2月12日-1981年4月8日),是美国陆军的五星上将,第二次世界大战期间