博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何理解int *(*a[5])(int, char*);
阅读量:6690 次
发布时间:2019-06-25

本文共 671 字,大约阅读时间需要 2 分钟。

int *(*a[5])(int, char*);  

拆开来分析:

typedef int* (*f)(int,char*);

f a[5];

所以a是个5个元素的数组,每个元素为函数指针.

可用代码验证:

#include 
#include
int* (*a[5])(int,char*);int *foo(int n, char *s){ int *p; p = (int *)malloc(sizeof(int)); *p = n + atoi(s); return p;}int main(int argc, char *argv[]){ int *p; a[0] = &foo; p = (*a[0])(1, "2"); printf("%d\n", *p); return 0;}

输出:

3

顺便把函数指针再复习一下:

#include 
#include
//int* (*a[5])(int,char*);typedef int (*f)(int,char*);f funp;int foo(int n, char *s){ return 10086;}int main(int argc, char *argv[]){ funp = &foo; printf("%x\n",funp); printf("%d\n",(*funp)(6,"test")); return 0;}
输出:

3f1000

10086

转载地址:http://keuoo.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
cookie记录最近浏览商品记录(取最新的五个浏览记录)
查看>>
CentOS配置snmp代理
查看>>
淘宝的搜索核心是什么?
查看>>
项目进度管理及成本管理知识要点
查看>>
Linux服务器上监控网络带宽的18个常用命令
查看>>
【java解惑】多重强转引发的问题
查看>>
用goaccess每天自动分析nginx日志
查看>>
gettickcount()
查看>>
ssh普通用户进行无密码登陆
查看>>
OGG运维优化脚本(二十)-进程操作类--强制时间点调整
查看>>
VC文档程序启动时窗口最大化问题
查看>>
博大的LVM知识
查看>>
MFQ&PPDCS大型嵌入式软件系统的测试分析和测试设计
查看>>
WPF动画设计1—文字书写
查看>>
MySqL双机热备份(二)--MysqL主-主复制实现
查看>>
echo 显示中带字体带颜色
查看>>
使用linq计算元素在列表中出现的次数c#代码
查看>>
LINUX 第二天
查看>>
Configure SQL Server Database Mirroring Using SSMS
查看>>