12-2-28关于一些指针的盘点
来源:互联网 发布:广发华福软件 编辑:程序博客网 时间:2024/04/30 08:16
1,指针数组,数组指针
指针数组:存放指针的数组
数组指针:指向数组的指针
例子:指针数组 int *a[10] 数组a里面存放的是10个int 型指针
数组指针int (*a)[10] a是指针,指向一个数组,里面存放着10个int 型变量
进行扩宽:int (*a[10])(int) //看这阵型,肯定是一个指向函数的的指针,或者叫函数指针
我们进行分析:从a开始,右边是一个[],a是一个含有10个元素的数组,再看左边是*,是指针,表示该数组里面的元素是指针。
出了括号后,再看右边是(int) 表示每个指针指向的都是函数 里面的int 表明形参是int型
再看左边,是int ,表示该函数返回的是int型
一种比较好理解的方式:int (*p)(int) 单纯的就是一个指向函数的指针,该函数返回值为int ,形参为Int,现在将单个*p换成一个指针数组了*a[10],说明里面的指针指向的都是函数
2介绍几个稍微比较复杂的函数指针
void * (* (* fp)(int))[10]
宏观一看就是一个指针数组,然后从内,一次右-左,递归下去,到最外面。
fp是一个指向函数的指针,该函数的接受的参数为int型,并返回一个指针,该指针指向一个指针数组,该数组存放10个void*的指针
float (* (*fp)(int ,int ,float))(int)
宏观一看就是函数指针,该函数返回值为float,该函数接受的参数为int
fp是一个指向函数的指针,该函数接受三个参数,分别为int,int ,float,该返回值为指向一个函数的指针,该函数的返回值为float,接受的参数为Int
typedef double (* ( * (*fp)( ) ) [10] ) ( );
fp a;
宏观角度就是一个函数指针,该函数返回值为double,无参数。
fp是一个指向函数的指针,该函数无参数,返回值为指向一个存放10个指针的数组,这些指针指向的都是函数,这些函数无参数,返回值为double
fp a; 表示a 是是fp类型的一个。
int (* (* f4())[10])();
f4这里是函数名了,它是返回指针的函数,该指针指向含有10个指针的数组,这些函数返回值为int
这里强调一点,数组名,指针不可混淆,例如int a[10] int(*a)[]
第一个表达式,a 的正确说法是数组名 sizeof(a)=40
第二个式子,a才能叫指针,sizeof(a)=4
- 12-2-28关于一些指针的盘点
- 10-12关于指针的一些知识
- 关于指针的一些知识
- 关于指针的一些笔记
- 关于指针的一些用法
- 关于指针的一些知识点
- 关于指针的一些总结
- 关于指针的一些总结
- 关于指针的一些想法
- 关于指针的一些知识点
- 关于盘点的设计
- 关于void指针用法的一些疑虑
- 关于指针、数组的一些整理
- 关于常量指针的一些问题
- 关于this指针的一些转载
- 关于 函数指针 的一些理解
- 关于指针引用的一些认识
- 关于指针和数组的一些思考
- 关于堆栈溢出问题
- Web 开发 Browser 调试大全
- Tomcat处理HTTP请求源码分析(下)
- C++服务器端+Android客户端的网络通信
- 为什么软件开发大都不招女生
- 12-2-28关于一些指针的盘点
- DBUnit的使用之單元測試類的配置
- HDU 1863
- 数学 hnu 12256 Rabbit Playing Game
- 多态详解(1)
- jsp tag file中使用c:when 标签无法正确判断的问题
- 终于发布成功了,截图表示庆祝
- PHP运行出现Notice : Use of undefined constant 的完美解决方案
- 06、C获取当前系统日期时间