函数指针

✍ dations ◷ 2025-12-04 08:29:21 #计算机技术

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


相关

  • 氰酸盐氰酸盐是氰酸根离子OCN−的盐,负电荷主要在氮原子上。例如氰酸钾KOCN。氰酸酯是含有OCN官能团的有机化合物。氰酸根离子具有以下两个共振式:因此共振杂化体可以下式表示:氰酸根
  • 佛寺佛寺(英语:Buddhist Temple),又称寺院、寺,是佛教的宗教建筑物,也是僧伽居住、修行的地方。佛寺中常有佛塔(浮屠塔)。“佛寺”为佛教供养佛像和僧人居住的场所,其中的“寺”原为中国
  • 非欧几何非欧几里得几何,简称非欧几何,是多个几何形式系统的统称,与欧几里得几何的差别在于第五公设。古希腊数学家欧几里得的《几何原本》提出了五条公设:长期以来,数学家们发现第五公设
  • 伊瓦尔·雅各布森伊瓦尔·亚尔玛·雅各布森(瑞典语:Ivar Hjalmar Jacobson,1939年9月2日-),又译伊万·雅各布森,是一位计算机科学家与软件工程师,在软件工程领域有很大贡献。曾参与设计统一建模语言(U
  • 伪体染色体区拟常染色体区(英语:pseudoautosomal region),又称伪体染色体区,是在高等动物性染色体(即X染色体和Y染色体)上的一段同源序列,分为PAR1和PAR2两部分,拟常染色体区上已发现至少29个基因
  • 生活《生活》(Life)是一本在美国发行的老牌周刊杂志,可说是在美国家喻户晓,地位与《时代》(Time)相差不远。其前身是1883年在纽约市曼哈顿发行的幽默周刊,发行社就叫做生活出版社(Life P
  • 婚内强奸婚内强奸(英语:marital rape)是夫妻中一方在未经另一方同意的情况下与其性交的行为。这是家庭暴力和性虐待的一种形式。虽然法律和社会曾经认为这不是错误或犯罪,但如今这种观点
  • 南马鲁古共和国南马鲁古共和国,又译南摩鹿加共和国(印尼: Republik Maluku Selatan, RMS),为一在马来群岛南马鲁古地区建立的国家,成立于1950年4月25日。1950年11月,该国被印尼军队攻占。其流亡
  • 电动机械学电动机械学(Electromechanics)是指从电气工程和机械工程中,结合电气和机械的过程和程序。电气工程在这方面也包括电子工程。继电器起源于电报,是用来再生电报信号的电动机械装置
  • 美国新闻自由美国政府认为,美国高度发达的传媒有赖于其自由的新闻环境,其中美国宪法第一修正案为新闻自由奠定了基础。殖民地时期北美的第一张报纸被称为“权威报纸”,意指该报纸由英国的殖