C语言指针学习指南:类型、值和内存管理
93 浏览量
更新于2024-08-27
收藏 107KB PDF 举报
指针学习指南
指针是C语言中一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。
一、指针的概念
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。
二、指针的类型
指针的类型是指针本身所具有的类型。从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。例如:
* int*ptr;//指针的类型是int*
* char*ptr;//指针的类型是char*
* int**ptr;//指针的类型是int**
* int(*ptr)[3];//指针的类型是int(*)[3]
* int*(*ptr)[4];//指针的类型是int*(*)[4]
三、指针所指向的类型
指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:
* int*ptr;//指针所指向的类型是int
* char*ptr;//指针所指向的的类型是char
* int**ptr;//指针所指向的的类型是int*
* int(*ptr)[3];//指针所指向的的类型是int()[3]
* int*(*ptr)[4];//指针所指向的的类型是int*()[4]
四、指针的值
指针的值是指针所指向的内存区的地址。例如:
* int x = 10;
* int*ptr = &x;
* printf("%p", ptr);//输出的是x的地址
五、指针的应用
指针在C语言中有广泛的应用,例如:
* 数组的应用:数组名可以作为指针来使用。
* 字符串的应用:字符串可以看作是一个字符数组,字符串名可以作为指针来使用。
* 结构体的应用:结构体的成员可以作为指针来使用。
六、指针的注意事项
* 野指针:未初始化的指针。
* 空指针:指针的值为NULL。
*悬空指针:指针所指向的内存区已经释放了,但是指针的值仍然保留着那个内存区的地址。
七、结论
指针是C语言中一个非常重要的概念,搞清指针的四方面的内容是精通指针的关键点之一。只有搞清指针的类型、指针所指向的类型、指针的值和指针本身所占据的内存区,才能更好地应用指针,写出高效、稳定的程序。
2008-12-25 上传
2011-04-26 上传
2023-09-05 上传
2023-11-15 上传
2023-07-13 上传
2023-07-14 上传
2023-08-24 上传
2023-06-06 上传
2023-09-09 上传
weixin_38663415
- 粉丝: 3
- 资源: 891
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作