c++复杂声明
来源:互联网 发布:数据备份方式 编辑:程序博客网 时间:2024/05/19 06:38
void (*funcPtr)();
上面声明了一个指向函数的指针,当碰到这样一个比较复杂的声明时,最好的方法是从 中间开始和向外扩展:
- 从中间开始:即 从变量名开始
- 像外扩展:即 先注意右边最近的项,已右括号结束,再注意左边的项,已左括号结束,再注意右边的项。。。
用上述方法来解析一下第一个声明:
- 往右看:是右括号,结束
- 往左看:funcPtr是个指针
- 往左看:碰到左括号,结束
- 往右看:指针指向一个函数,即:指向函数的指针
- 向左看:函数的返回值类型是 void,即:指向返回值为 void 的函数
再看第二个例子:
void * (*(*fp1)(int))[10];
- 往右看:是右括号,结束
- 往左看:fp1 是个指针
- 往左看:是左括号,结束
- 往右看:fp1 指向一个 参数为 int 的函数(因为函数是
()
指示的,碰到了)
下一步就往左看) - 往左看:函数返回一个指针
- 往左看:是左括号,结束
- 往右看:指针指向一个 数组
- 往左看:数组类型为 void *
即:fp1是一个函数指针,指向的函数 接收 int 为参数,返回一个指针,这个指针指向一个 10 个元素的数组,数组类型为 void *
参考资料
C++编程思想:P109-110
阅读全文
0 0
- C复杂声明解析
- C复杂声明解析
- C复杂声明解析
- C复杂声明
- C语言复杂声明
- C语言复杂声明
- C复杂声明解析
- C语言复杂声明
- c的复杂声明
- C复杂声明练习
- 理解复杂C声明
- 复杂的c声明
- C复杂声明解析(ZZ)
- C语言复杂标识符声明
- C语言复杂声明解析
- C中复杂指针声明
- C语言中的复杂声明
- c语言 复杂声明 解析
- git_快速入门 03【三种境界】全世界朋友一起玩
- Git命令总结
- 软设之路1.1-计算机系统
- 执行多条 sql语句
- 手把手移植tiny4412开发板uboot
- c++复杂声明
- Android OKhttp使用
- Java 动态代理
- 主板大小区分
- java框架基础之反射
- Appium之python 基本API
- 第7周项目2-建立链队算法库
- 遇到一个诡异目前无解的系统部署问题
- 利用标签Loop实现对循环的控制