没有合适的资源?快使用搜索试试~ 我知道了~
首页C语言指针深度解析:数组指针与函数指针详解
本文档深入解析了C语言中的指针、数组和函数指针概念,对于理解和使用这些高级特性至关重要。首先,作者将指针与内存分配的关系进行了区分: 1. 指针数组:尽管名为数组,但指针数组里的元素是其他类型的指针,而非基本数据类型。例如,`int*a[10];` 是一个存储指针的数组,但不能直接从堆内存动态分配,需通过循环为每个元素申请或设置独立的内存地址。 2. 数组指针:不同于指针数组,数组指针是指向一维或多维数组的指针。例如,`int*b = new int[10];` 是一个指向一维数组的指针,而 `int(*b2)[10] = new int[10][10];` 指向的是二维数组。在处理多维数组指针时,必须注意释放内存时要确保所有嵌套数组都被正确释放。 3. 指向指针的指针:如 `intcc = new (int*)[10];`,这里的 `cc` 是一个指向 `int*` 指针的指针,需要明确类型才能正确在堆内存中申请空间。 4. 多维指针数组:如 `intd[2];` 是一个指针数组,其每个元素都是指向其他指针的指针,可以进一步扩展为多层嵌套。 理解这些概念有助于程序员在编写高效且内存管理良好的C代码时,更好地操作复杂的数据结构和内存布局。通过掌握这些技巧,开发者可以避免常见的内存错误,提高代码的健壮性和可维护性。文档旨在提供一种学习方法,帮助读者避免在实践中遇到的常见问题,提升编程技能。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/4250271/bg1.jpg)
小弟是一个软件工程师,做unix c/c++ java的开发,每次碰到问题都跑到CU
里问人,呵呵,昨天在碰到一个指针数组的
问题的时候,由于好久没用,感觉有些陌生了,所以今天归纳总结了一下,希望
以后的朋友可以少走些弯路,也不知道对大家有没有用处:)
一 :关于指针和堆的内存分配
(1) 指针数组 : 一个数组里放的都是指针,我们把他叫做指针数组:)
int * a[10]; 由于它是一个数组,他是不能从堆空间里申请空间的。
只能做个循环,每个元素去申请空间,或者每个元素去指向另外的地址空间。
( 2 ) 数组指针 : 一个指向一唯或者多唯数组的指针;
int * b=new int[10]; 指向一唯数组的指针b ;
a 指向了一个栈空间中10个并排放置的 int 型元素的首地址
int (*b2)[10]=new int[10][10]; 注意,这里的b2指向了一个二唯int型数组
的首地址.
注意,这里的b2的类型是int (*) ,这样表示一个指向二唯数组的指针。再注意,
如果这样在堆空间里已经申请了内存,在释放内存的时候要保证每个空间都要释
放。
int (**b3)[2]=new (int(*)[2])[2]; b3表示一个指向(指向二唯数组的指针)
的指针,我们在给他申请空间的时候一定要注意它的类型:它是int (*)型的指
针,那申请空间的时候的类型为int(*)[元素个数],由于它后边还带个二唯数组
每元的个数后缀,所以加上这个后缀就OK了。
int (**b4)[2];表示每一个元素都指向(指向二唯数组的指针)的数组。
由于它是数组,所以要是在堆里申请内存,就必须为每一个元素单独申请。
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/0b48fb2d5af246cf88353168cf15e20a_dhtzlfx.jpg!1)
卧龙小三
- 粉丝: 7
- 资源: 4
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 电力电子与电力传动专业《电子技术基础》期末考试试题
- 电力电子技术期末考试题:电力客户与服务管理专业
- 电力系统自动化《电力电子技术》期末考卷习题精选
- 电力系统自动化专业《电力电子技术》期末考试试题
- 电子信息专业《电子技术》期末考试试题解析
- 电子与信息技术专业《电子技术》期末考试试题概览
- 电子信息工程《电子技术》期末考卷习题集
- 电子信息工程专业《电子技术》期末考试试题解析
- 电子信息工程《电工与电子技术》期末考试试题解析
- 电子信息工程专业《电子技术基础》期末考试计算题解析
- 电子技术期末考试题试卷(试卷B)——电子技术应用专业
- 电子科技专业《电力电子技术》期末考试填空题精选
- 2020-21秋《电力电子技术》电机电器智能化期末试题解析
- 电气工程及其自动化专业《电子技术》期末考试题(卷六)
- 电气工程专业《电子技术基础》期末考试试题解析
- 电气自动化专业《电子技术》期末考试试题解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)