立即注册
查看: 864|回复: 5

[资料] C语言高级专题第3部分-指针才是C语言的精髓

已绑定手机
发表于 2021-4-24 09:50:09 | 显示全部楼层 |阅读模式 来自 广东省深圳市南山区
第一部分、章节目录
4.3.1.指针到底是什么?
4.3.2.指针带来的一些符号的理解
4.3.3.野指针问题
4.3.4.const关键字与指针
4.3.5.深入学习一下数组
4.3.6.指针与数组的天生姻缘
4.3.7.指针与强制类型转换
4.3.8.指针、数组与sizeof运算符
4.3.9.指针与函数传参
4.3.10.输入型参数与输出型参数

4.3.1.指针到底是什么?
4.3.1.1、指针变量和普通变量的区别
(1)首先必须非常明确:指针的实质就是个变量,它跟普通变量没有任何本质区别。指针完整的名字应该叫指针变量,简称为指针。

4.3.1.2、为什么需要指针?
(1)指针的出现是为了实现间接访问。在汇编中都有间接访问,其实就是CPU的寻址方式中的间接寻址。
(2)间接访问(CPU的间接寻址)是CPU设计时决定的,这个决定了汇编语言必须能够实现间接寻址,又决定了汇编之上的C语言也必须实现简介寻址。
(3)高级语言如Java、C#等没有指针,那他们怎么实现间接访问?答案是语言本身帮我们封装了。

4.3.1.3、指针使用三部曲:定义指针变量、关联指针变量、解引用
(1)当我们int *p定义一个指针变量p时,因为p是局部变量,所以也遵循C语言局部变量的一般规律(定义局部变量并且未初始化,则值是随机的),所以此时p变量中存储的是一个随机的数字。
(2)此时如果我们解引用p,则相当于我们访问了这个随机数字为地址的内存空间。那这个空间到底能不能访问不知道(也许行也许不行),所以如果直接定义指针变量未绑定有效地址就去解引用几乎必死无疑。
(3)定义一个指针变量,不经绑定有效地址就去解引用,就好象拿一个上了镗的枪随意转了几圈然后开了一枪。
(4)指针绑定的意义就在于:让指针指向一个可以访问、应该访问的地方(就好象拿着枪瞄准目标的过程一样),指针的解引用是为了间接访问目标变量(就好象开枪是为了打中目标一样)


更多内容请下载附件查看(免费下载):
游客,如果您要查看本帖隐藏内容请回复



  • 一牛网商城 一牛网直播
已绑定手机
发表于 2021-4-26 18:27:22 | 显示全部楼层 来自 广东省深圳市
谢谢分享好资料
已绑定手机
发表于 2021-5-18 09:35:11 | 显示全部楼层 来自 北京市
这个文件的建设是很好的发言
已绑定手机
发表于 2021-7-19 17:09:31 | 显示全部楼层 来自 安徽省合肥市
学习下                 
已绑定手机
发表于 2021-8-22 09:21:06 | 显示全部楼层 来自 上海市
嗯,指针带来的效率很不错。可惜问题的追踪稍微有点麻烦
已绑定手机
发表于 2021-10-26 11:06:20 | 显示全部楼层 来自 广东省惠州市
下来学习下,谢谢楼主分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
微信客服扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表