函数指针

✍ dations ◷ 2025-12-01 17:05:19 #计算机技术

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


相关

  • 失能调整生命年失能调整生命年(英语:disability-adjusted life year,缩写:DALY)是衡量整体疾病负担(英语:Disease burden)的一种方法。最初是由世界卫生组织所开发,现在则渐渐地在公共卫生和健康影
  • Pm6s2 4f52, 8, 18, 23, 8, 2第一:540 kJ·mol−1 第二:1050 kJ·mol−1 第三:2150 kJ·mol主条目:钷的同位素钷是一种化学元素,符号为Pm,原子序61,属于镧系元素与稀土元素,它所有
  • 持续性植物状态神经科神经科 ICD10 =持续性植物状态(英语:Persistent vegetative state,缩写为 PVS),是指大脑已经完全或大半失去功能,亦即已经失去意识,但尚存活的人。这类病患俗称为植
  • 碳14碳14(¹⁴C)或放射性碳是碳元素的一种具放射性的同位素,于1940年2月27日由加州大学伯克利分校放射性实验室(现劳伦斯伯克利国家实验室)的马丁·卡门和萨姆·鲁本首先发现。它透过
  • 乙酰氨基葡萄糖N-乙酰葡糖胺(GlcNAc;NAG)是葡糖胺的N-乙酰衍生物,分子式C8H15NO6。NAG与NAM为组成细菌细胞壁的单体,与葡糖醛酸为透明质酸的单体。NAG也是甲壳素的聚合单体。细菌疾病 · 科莱
  • 法式洋葱汤法式洋葱汤(英语:French onion soup)是主要以肉类和洋葱为成分制成的汤,其历史可追溯到古典时代,法式洋葱汤一直很受罗马人和希腊人欢迎。
  • 圣塞宁圣殿圣塞宁圣殿(法语:Basilique Saint-Sernin)位于法国图卢兹,建于公元1080年至公元1120年间,是一座罗马式的教堂。此教堂是一座砖制建筑,由于当地缺乏石料,只有少数部位才用到石材。它
  • 文艺春秋株式会社文艺春秋(日语:株式會社文藝春秋,英语:Bungeishunju Ltd.)是一家总部位于东京都千代田区的日本出版社。1923年1月,菊池宽创立文艺春秋社。1946年3月,因参与“战争协力”而
  • 讽刺与幽默《讽刺与幽默》是中华人民共和国的一份周报,由人民日报社主管,环球时报社主办。《讽刺与幽默》也是中国大陆创刊最早的漫画报纸,是迄今中国大陆持续时间最长的漫画刊物。《讽刺
  • 性取向连续体性取向连续体(Heterosexual–homosexual continuum)是对人类性行为的心理和哲学理解,将性取向视为从同性恋到异性恋的连续光谱上。这一概念开始于阿尔弗雷德·金赛在1940年代进