变态的C声明怎么识别?
来源:互联网 发布:书法字帖 知乎 编辑:程序博客网 时间:2024/04/29 19:42
做C语言程序经常会遇到变态的声明,学习了msdn上的一篇文章,豁然开朗。
char *( *(*var)() )[10];
^ ^ ^ ^ ^ ^ ^
7 6 4 2 1 3 5
1. var被定义为
2. 一个指向3的指针
3. 一个返回值为4的函数
4. 一个指向5的指针
5. 一个拥有10个变量的一维数组,它6
6. 指向7
7. char类型的值。
连贯起来:var被定义为一个指向一个返回值为一个指向一个拥有10个变量的一维数组,它指向char类型的值的指针的函数的指针。
虽然看不明白了,但是就是这么一个意思。规则为:高优先级先于低优先级,右先于左。
继续阅读文章,内容类似,以此类推,你看看下面的内容是否和文章http://technet.microsoft.com/zh-cn/library/1x82y1z4(v=vs.85).aspx上是一样的。
int *var[5];
int (*var)[5];
long *var(long, long);
long (*var)(long, long);
struct both { int a; char b; } (*var[5])(struct both, struct both);
unsigned int *(* const *name[5][10])(void);
double (*var(double(*)[3]))[3];
union sign { int x; unsigned y; } **var[5][5];
- 变态的C声明怎么识别?
- c中指针的声明识别
- 一个变态C/C++面试题的变态解法
- 一个变态C/C++面试题的变态解法
- [转贴]变态的C自增
- 变态的C用法……
- 6个变态的C语言程序
- 6个变态的C语言
- C语言复杂类型声明怎么理解?
- 需求未必是变态的,关键看怎么理解需求
- 变态的
- c语言的声明
- c语言的声明
- c 类型的声明
- C语言的声明
- c语言的声明
- c的复杂声明
- C语言的声明
- SPI协议及其工作原理浅析
- HibernateCallback
- BT656/BT601/BT1120协议以及DM365/DM355/DM6467上使用的YUV颜色空间说明
- 多表处理(一)
- 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复
- 变态的C声明怎么识别?
- lzo
- KVM内核代码结构
- 黑马程序员——自学笔记17(银行业务调度系统)
- SAL在OpenOffice中是什么意思
- Spring scope
- 黑马程序员----交通灯总结
- 查看键盘ASC码的方法
- 检测内核已加载模块的所有导出函数是否被inlinehook