怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?


Posted in 面试题 onMarch 19, 2013
这个问题至少有以下3 种答案:
1. char *(*(*a[N])())();
2. 用typedef 逐步完成声明:
typedef char *pc; /* 字符指针*/
typedef pc fpc(); /* 返回字符指针的函数*/
typedef fpc *pfpc; /* 上面函数的指针*/
typedef pfpc fpfpc(); /* 返回函数指针的函数*/
typedef fpfpc *pfpfpc; /* 上面函数的指针*/
pfpfpc a[N]; /* 上面指针的数组*/
3. 使用cdecl 程序, 它可以把英文翻译成C 或者把C 翻译成英文:
cdecl> declare a as array of pointer to function returning pointer to function returning pointer to char
char *(*(*a[])())()
通过类型转换, cdecl 也可以用于解释复杂的声明, 指出参数应该进入哪一对括号(如同在上述的复杂函数定义中)

Tags in this post...

面试题 相关文章推荐
简单说说tomcat的配置
May 28 面试题
介绍Ibatis的核心类
Nov 18 面试题
新东网科技Java笔试题
Jul 13 面试题
C语言面试题
Oct 30 面试题
什么是命名空间(NameSpace)
Nov 24 面试题
一些Solaris面试题
Mar 22 面试题
JPA的特点
Oct 25 面试题
AJAX的全称是什么
Nov 06 面试题
请用Java实现列出某个目录下的所有文件
Sep 23 面试题
程序员经常用到的UNIX命令
Apr 13 面试题
介绍一下SOA和SOA的基本特征
Feb 24 面试题
Java面试题冲刺第十五天--设计模式
Aug 07 面试题
这段代码难道不该打印出56吗
Feb 27 #面试题
枚举和一组预处理的#define有什么不同
Sep 21 #面试题
extern在函数声明中是什么意思
Jan 19 #面试题
strstr()的简单实现
Sep 26 #面试题
程序运行正确, 但退出时却"core dump"了,怎么回事
Feb 19 #面试题
怎样从/向数据文件读/写结构
Nov 23 #面试题
如何向接受结构参数的函数传入常数值
Feb 17 #面试题
You might like
用PHP实现将GB编码转换为UTF8
2006/11/25 PHP
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
PHP数组操作类实例
2015/07/11 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
2019/10/12 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
JavaScript 无符号右移运算符
2009/04/17 Javascript
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
js实现图片漂浮效果的方法
2015/03/02 Javascript
js判断某个字符出现的次数的简单实例
2016/06/03 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
Python的Tornado框架异步编程入门实例
2015/04/24 Python
python各种语言间时间的转化实现代码
2016/03/23 Python
python数据封装json格式数据
2018/03/04 Python
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
高一历史教学反思
2014/01/13 职场文书
2014年社会实践活动总结范文
2014/04/29 职场文书
出国英文推荐信
2014/05/10 职场文书
公司市场部岗位职责
2015/04/15 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
Go语言实现Snowflake雪花算法
2021/06/08 Golang