当前位置: 首页 > news >正文

c语言笔记 函数指针

函数指针

定义:指向函数的指针,被称为函数指针;

概念:函数指针是指针的一种类型,跟其他普通函数指针的用法是原因的,但是由特殊的地方就是函数指针的取址符和解引用的星号可以省略

使用代码加深理解:

在定义指针的时候,我们要匹配指针的类型,在之前的笔记中有提到变量的类型 就是把变量名字去掉,剩下的就是该变量的类型,函数也是如此;

#include<stdio.h>
//比较大小值的函数
int max(int a, int b)
{
    return a>b?a:b;
}//函数就是一块内存空间,max函数向系统申请一块空间来使用
int main()
{   //定义一个函数指针指向max,
    int (*p)(int a ,int b) = &max;
    int n = max(3,5);
    int nn = (*p)(3,5);
    上面两种写法是等价的.
    //函数指针还有特殊的规则
    int (*p)(int a ,int b) = max;//&可以省去,两种是等价的
    int n = max(3,5);
    int nn = (p)(3,5); //*可以省去
    return 0;
}

为什么函数指针的&和*可以省去?

因为在系统中对于函数指针中加上的&和*,编译器会自动忽略不看。之所以存在是为了,方便我们初学者学习指针,指针的用法是一样的,可以取地址,可以解引用。让我们脑海里有一个统一的用法,我们可以坚持原先的使用规则,但是若是出现函数指针不出现&和*,我们就知道是函数指针的特殊规则。

函数实际上也是函数指针。

相关文章:

  • K8S学习之基础九:k8s中pod的生命周期
  • Spark(5)host配置
  • 线上图片验证码性能优化base64编码
  • html播放本地音乐
  • 【HDLbits--FSM续(二)】
  • 游戏引擎学习第138天
  • R语言的基础命令及实例操作
  • sqlmap:从基础用法到漏洞利用实战
  • Zookeeper学习
  • 前端到AI,LangChain.Js(五)
  • DeepSeek V3 源码:从入门到放弃!
  • CInternetToolbar::_CommonHandleFileSysChange函数分析之CReBar::_IDToIndex函数的作用
  • Yocto Linux 量产 BSP 镜像定制
  • C++中避免重复虚函数的三大解决方案:以卡牌游戏开发为例
  • ArcGIS Pro:轻松制作地震动画,洞察灾害动态
  • Kubernetes全解析:从容器编排到云原生霸主
  • Arcgis中添加脚本工具箱
  • Java后端大厂高频面经——Java基础
  • *VulnHub-FristiLeaks:1.3暴力解法、细节解法,主打软硬都吃,隧道搭建、寻找exp、提权、只要你想没有做不到的姿势
  • ​‌fpassthru($stream)‌ 是 PHP 中的一个函数​
  • 色情网站是怎么建设的/seo关键词排名在线查询
  • 网站建设的社会意义/福州seo公司
  • 长沙网站制作公司地址/电商运营推广是做什么的
  • 专门做照片书的网站/四川seo推广公司
  • 音乐网站系统源码/公司网站建设费用多少
  • 公司有域名 如何做网站/西安计算机培训机构排名前十