C语言——复杂指针的读写

1、函数指针

  int (*p)(int, int);

  “p”是一个返回值为int类型,参数为 (int, int)类型的函数指针

  通常使用typedef来定义它的类型:typedef int (*p)(int, int);

  此时p是一个类型,不是一个变量。

 

2、函数指针数组

  int (*p[5])(int, int);

  “p”是一个具有5个元素的数组,数组元素的类型是“返回值为int类型,参数为 (int, int)类型的函数指针”

  赋值方法:

  int (*p[5])(int, int) = {func1, func2, func3, func4, func5};

  或

  p[0] = func1;

  p[1] = func2;

  ...

  调用的时候就当函数名调用就行,函数名本身就是函数指针常量。

 

 

复制代码
 1     int* (*(*(*abc)())[6])();
 2     /*
 3     * 1、(*abc)()——函数指针
 4     * 2、(*(某1))[6]——某的数组的指针
 5     * 3、int* (*(某2))()——返回值为int*类型的某的函数指针
 6     * 组合方式:12321
 7     * 组合:(以(指向((返回值为int*类型的(函数指针))数组)的指针)为返回值的)函数指针
 8     * 解析:首先(*abc)()是一个函数指针,函数指针的返回值是什么呢?
 9     *        返回值是一个指针,指针指向什么呢?
10     *        指针指向一个数组,数组是什么类型的呢?
11     *        数组是函数指针类型的,函数指针的返回值是什么呢?
12     *        返回值是int*类型。
13     **/
复制代码

 

posted @   _燃灯续昼  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示