• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言函数指针(指向函数的指针)详解

C语言函数指针(指向函数的指针)详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2022-04-30

匿名通过本文主要向大家介绍了等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,这和数组名非常类似。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到并调用该函数。这种指针就是函数指针。

函数指针的定义形式为:

returnType (*pointerName)(param list);

returnType 为函数返回值类型,pointerName 为指针名称,param list 为函数参数列表。参数列表中可以同时给出参数的类型和名称,也可以只给出参数的类型,省略参数的名称,这一点和函数原型非常类似。

注意( )的优先级高于*,第一个括号不能省略,如果写作returnType *pointerName(param list);就成了函数原型,它表明函数的返回值类型为returnType *。

【实例】用指针来实现对函数的调用。
#include <stdio.h>//返回两个数中较大的一个int max(int a, int b){    return a>b ? a : b;}int main(){    int x, y, maxval;    //定义函数指针    int (*pmax)(int, int) = max;  //也可以写作int (*pmax)(int a, int b)    printf("Input two numbers:");    scanf("%d %d", &x, &y);    maxval = (*pmax)(x, y);    printf("Max value: %d\n", maxval);    return 0;}
运行结果:
Input two numbers:10 50↙
Max value: 50

第 14 行代码对函数进行了调用。pmax 是一个函数指针,在前面加 * 就表示对它指向的函数进行调用。注意( )的优先级高于*,第一个括号不能省略。
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-28C++实现动态绑定代码分享
  • 2017-05-28c++中拷贝构造函数的参数类型必须是引用
  • 2017-05-28C语言实现在数组A上有序合并数组B的方法
  • 2017-05-28C语言中的pause()函数和alarm()函数以及sleep()函数
  • 2017-05-28C++实现基于控制台界面的吃豆子游戏
  • 2017-05-28mingw编译的windows命令行贪吃蛇示例
  • 2017-05-28C++继承中的访问控制实例分析
  • 2017-05-28深入解读C语言中的符号常量EOF
  • 2017-05-28C++ 基类指针和子类指针相互赋值的实现方法
  • 2017-05-28cocos2d-x学习笔记之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex场景层介绍

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Windows的钩子机制详解
    • C++利用静态成员或类模板构建链表的方法讲解
    • 使用C++制作简单的web服务器
    • static_cast,dynamic_cast,reinterpret_cast和const_cast的区别详解
    • C++ 字符串去重排序实例代码
    • C++模板类的用法实例
    • 详解C++设计模式编程中建造者模式的实现
    • C++实现第K顺序统计量的求解方法
    • C语言结构体(struct)常见使用方法(细节问题)
    • c++中的4种类型转化方式详细解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有