函数指针

✍ dations ◷ 2025-11-23 22:02:54 #计算机技术

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


相关

  • 脂毛噬菌体科α脂毛噬菌体属 β脂毛噬菌体属 γ脂毛噬菌体属脂毛噬菌体科Lipothrixviridae名称来源: Lipo(lip-脂肪):根据希腊文,lipos(liposome脂质体),脂肪(fat) Thrix:根据希腊文,thrix,毛发
  • 生物化学物质生物化学(英语:biochemistry,也作 biological chemistry),顾名思义是研究生物体中的化学进程的一门学科,常常被简称为生化。它主要用于研究细胞内各组分,如蛋白质、糖类、脂类、核
  • National Institutes of Health美国国家卫生院(英语:National Institutes of Health,缩写为NIH),隶属于美国卫生及人类服务部,是美国联邦政府中首要的生物医学研究机构。2006年的资料显示,此机构花费美国全国28%
  • US (消歧义)US可以指:
  • 乌贼十腕总目(学名:Decapodiformes),俗称“乌贼”,古称乌鲗,是一种头足纲蛸亚纲新蛸下纲之下的一类软体动物,所有乌贼都可以喷墨。乌贼类可以大致概括本类多数动物。与蛸亚纲的其他分类
  • 肽类肽(英语:peptide,来自希腊文的“消化”),旧称胜,即胜肽,又称缩氨酸,是天然存在的小生物分子,介于氨基酸和蛋白质之间的物质。由于氨基酸的分子最小,蛋白质最大,而它们则是氨基酸单体组
  • 夸贾林岛夸贾林环礁(马绍尔语:'Kuwajleen.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium"
  • 波兰流亡政府中世纪早期(英语:Poland in the Early Middle Ages) · 波兰的基督教化 · 第一王国 · 第二王国 · 皮尔斯特王朝 · 雅盖隆王朝第一共和国 / 波兰立陶宛联邦 · 俄普奥三次
  • 江原道江原道(朝鲜语:강원도/江原道 Kangwŏn do */?)在朝鲜民主主义人民共和国政府的统治范围为南部大约三八线以北的地区,首府位于元山市。
  • 浙赣铁路.mw-parser-output .RMbox{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)}.mw-parser-output .RMinline{float:none