函数指针

✍ dations ◷ 2025-11-28 00:09:36 #计算机技术

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


相关

  • 诺贝尔生理学和医学奖诺贝尔生理学或医学奖(瑞典语:Nobelpriset i fysiologi eller medicin),通常合称诺贝尔生理医学奖,由诺贝尔基金会管理,该奖项每年颁发一次,用于表彰在生理学或医学领域作出重要发
  • 禾部,为汉字索引中的部首之一,康熙字典214个部首中的第一百一十五个(五划的则为第二十一个)。就繁体和简体中文中,禾部归于五划部首。禾部通常从左、上、下方为部字。且无其他部
  • 硝化反应硝化是向有机化合物分子中引入硝基(-NO2)的过程,硝基就是硝酸失去一个羟基形成的一价的基团。芳香族化合物硝化的反应机理为:硝酸的-OH基被质子化,接着被脱水剂脱去一分子的水形成
  • 篆刻篆刻二字,最初见于扬雄的法言:“童子雕虫篆刻是也。”篆刻有广义与狭义两种解释。狭义的篆刻专指后人所谓的治印之学;广义的篆刻则泛指一切雕琢技法。篆刻也是刻印印章的一种,但
  • 硝基化合物硝基化合物是含有一个或若干个硝基官能团(-NO2)的有机化合物。硝基化合物通常易爆,尤其是当分子内含有超过一个硝基且不纯时。芳香硝基化合物通常通过硝化反应合成,即混合硝酸
  • 楠梓园区加工出口区楠梓园区,旧称楠梓加工出口区,位于台湾高雄市楠梓区,成立于1969年。加工区内有日月光半导体、楠梓电子、华泰电子、国巨、万宝至马达、台弟工业等公司设厂,通用验证(SG
  • 米雷米雷(法语:Muret)是法国南部-比利牛斯大区上加龙省的一个市镇,属于米雷区(Muret)米雷县(Muret)。该市镇总面积57.84平方公里,2009年时的人口为23356人。。米雷人口变化图示
  • 三商巧福三商巧福,是台湾三商企业的牛肉面连锁店。前身是成立于1983年的三商速简餐厅,是台湾第一家台式料理速食餐厅,但因菜色繁多无法达到快速供餐,遂于隔年改为以牛肉面为主力的七七巧
  • NBA选秀状元NBA选秀状元(英语:The National Basketball Association's first overall pick)是历届NBA选秀大会的第一顺位球员。是由上一年次NBA常规赛中未进入季后赛的较差战绩球队所参加N
  • 平行四边形恒等式在数学中,平行四边形恒等式是描述平行四边形的几何特性的一个恒等式。它等价于三角形的中线定理。在一般的赋范内积空间(也就是定义了长度和角度的空间)中,也有类似的结果。这个