函数指针

✍ dations ◷ 2025-11-30 09:09:03 #计算机技术

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


相关

  • 世代研究世代研究(英语:cohort study 或 panel study),又译为队列研究、群组研究、定群研究、追踪研究、梯次研究等,是在医学、社会科学、精算学、生态学等领域中使用的一种纵向研究(英语:l
  • 牙科人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学牙医学(法语:Dentisterie; 英语:Dentistr
  • Adobe AcrobatWindows20.006.20034(2020年2月11日,​38天前​(2020-02-11))macOS20.006.20034(2020年2月11日,​38天前​(2020-02-11))Android20.0.1(2020年1月28日,​52天前​(2020-01-28))iOS20.01.00(2
  • 江淮官话江淮官话,又称宁白、下江官话、下江话、江淮话、江北话、淮语,南方官话的重要组成部分。江淮话在词汇、音韵、语法等方面与北方官话相比都具有较大差异,最大特色就是江淮官话完
  • 意大利入侵阿尔巴尼亚贝尼托·墨索里尼佐格一世意大利入侵阿尔巴尼亚(1939年4月7日—4月12日)是法西斯意大利对阿尔巴尼亚王国采取的一个非常简单的军事行动,该冲突是意大利独裁者贝尼托·墨索里尼
  • 伊努克提图特语伊努克提图特语,或译作因纽特语、伊努特语、Eastern Canadian Inuktitut( (/ɪˈnʊktᵻtʊt/; Inuktitut: .mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL",
  • 焦亚硫酸焦亚硫酸,严格地说是偏二亚硫酸,是一种硫的含氧酸,化学式为H2S2O5。焦亚硫酸和硫代硫酸一样,不能以游离态存在。与焦硫酸不同的是其中两个硫原子直接相连。
  • 户外运动户外运动是一种通过参与者自身努力而使自己的身心得到锻炼,同时使自身更能贴近自然、感受自然的运动。也是适合人们在假日时的休闲活动,可以锻炼身体、磨练自身意志,也可以交朋
  • 瞪羚属瞪羚属(Gazella)是羚羊亚科的一属。瞪羚是非常敏捷的动物;以80公里/时的速度跑下来,1小时都不觉得累。大多数瞪羚生活在非洲大草原,但是也有少数生活在亚洲(例如鹅喉羚)。大多数瞪
  • 双唇挤喉音双唇挤喉音(Bilabial ejective)是辅音的一种,用于一些口语中。用于表示此音的国际音标(IPA)是⟨pʼ⟩,其等价的X-SAMPA音标为p_>。双唇挤喉音的特征包括:除了以下列出的语言以外,此