c++中关于指针的比较复杂的定义方式(《c++编程思想》读书笔记)
2016-06-28 12:35
302 查看
最近利用茶语饭后的时间在看《c++编程思想》这本大部头的经典,其中看到关于指针的论述,不禁拍案叫绝,摘录几笔如下:
//complicated Definitions
1. void * (*(*fp1)(int))[10];
2. float (*(*fp2)(int,int,float))(int);
3. typedef double (*(*(*fp3)())[10])();
4. int (*(*fp4())[10])();
1:fp1是一个指向函数的指针,该函数接受一个整型参数并返回一个指向含有10个void指针数组的指针。
2:fp2是一个指向函数的指针,该函数接受3个参数且返回一个指向函数的指针,该函数接受一个整型参数并返回一个float.
3:fp3是一个指向函数的指针,该函数无参数,且返回一个指向含有10个指向函数指针数组的指针,这些函数不接受参数且返回double值。
4:fp4是一个函数定义,fp4是一个返回指针的函数,该指针指向含有10个函数指针的数组,这些函数返回整型值。
光看定义和说明就已经觉得很复杂了,真不知道实际应用会是什么样子,不禁感叹c++确实是高手用的东西。。。
//complicated Definitions
1. void * (*(*fp1)(int))[10];
2. float (*(*fp2)(int,int,float))(int);
3. typedef double (*(*(*fp3)())[10])();
4. int (*(*fp4())[10])();
1:fp1是一个指向函数的指针,该函数接受一个整型参数并返回一个指向含有10个void指针数组的指针。
2:fp2是一个指向函数的指针,该函数接受3个参数且返回一个指向函数的指针,该函数接受一个整型参数并返回一个float.
3:fp3是一个指向函数的指针,该函数无参数,且返回一个指向含有10个指向函数指针数组的指针,这些函数不接受参数且返回double值。
4:fp4是一个函数定义,fp4是一个返回指针的函数,该指针指向含有10个函数指针的数组,这些函数返回整型值。
光看定义和说明就已经觉得很复杂了,真不知道实际应用会是什么样子,不禁感叹c++确实是高手用的东西。。。
相关文章推荐
- C语言中字符串与整型,浮点型之间的转换
- leetcode 1 Two Sum C++
- [C++]在Visual Studio 2010中使用Google Test - 配置
- 几个好用的makefile 几乎可以不用修改
- 保存文件为utf8格式。
- C++bind函数
- leetcode #150 in cpp
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete
- C/C++中的段错误(Segmentation fault)[转]
- C,C++表达式中含++的求值顺序
- leetcode #149 in cpp
- c/c++时间函数
- 数字证书及其认证过程
- c++实现Xml和json互转
- leetcode 6 ZigZag Conversion C++
- __declspec(dllexport)和__declspec(dllimport)
- c++ stringstream
- C/C++基础:set的基本操作总结及注意细节问题
- C++ STL set容器常用用法
- c语言版贪吃蛇《课程设计》