资料介绍
指针对于C来说太重要!然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识,所以本文尽可能的通过一篇文章完全讲解指针。
为什么需要指针?
指针解决了一些编程中基本的问题。
第一,指针的使用使得不同区域的代码可以轻易的共享内存数据。
当然小伙伴们也可以通过数据的复制达到相同的效果,但是这样往往效率不太好。
因为诸如结构体等大型数据,占用的字节数多,复制很消耗性能。
但使用指针就可以很好的避免这个问题,因为任何类型的指针占用的字节数都是一样的(根据平台不同,有4字节或者8字节或者其他可能)。
第二,指针使得一些复杂的链接性的数据结构的构建成为可能,比如链表,链式二叉树等等。
第三,有些操作必须使用指针。如操作申请的堆内存。
还有:C语言中的一切函数调用中,值传递都是“按值传递”的。
如果我们要在函数中修改被传递过来的对象,就必须通过这个对象的指针来完成。
计算机是如何从内存中进行取指的?
计算机的总线可以分为3种:数据总线,地址总线和控制总线。这里不对控制总线进行描述。
数据总线用于进行数据信息传送。数据总线的位数一般与CPU的字长一致。
一般而言,数据总线的位数跟当前机器int值的长度相等。
例如在16位机器上,int的长度是16bit,32位机器则是32bit。这个计算机一条指令最多能够读取或者存取的数据长度。大于这个值,计算机将进行多次访问。
这也就是我们说的64位机器进行64位数据运算的效率比32位要高的原因,因为32位机要进行两次取指和运行,而64位机却只需要一次!
地址总线专门用于寻址,CPU通过该地址进行数据的访问,然后把处于该地址处的数据通过数据总线进行传送,传送的长度就是数据总线的位数。
地址总线的位数决定了CPU可直接寻址的内存空间大小,比如CPU总线长32位,其最大的直接寻址空间长232KB,也就是4G。
这也就是我们常说的32位CPU最大支持的内存上限为4G(当然,实际上支持不到这个值,因为一部分寻址空间会被映射到外部的一些IO设备和虚拟内存上。 现在通过一些新的技术,可以使32位机支持4G以上内存,但这个不在这里的讨论范 围内)。
一般而言,计算机的地址总线和数据总线的宽度是一样的,我们说32位的CPU,数据总线和地址总线的宽度都是32位。
计算机访问某个数据的时候,首先要通过地址总线传送数据存储或者读取的位置,然后在通过数据总线传送需要存储或者读取的数据。
一般地,int整型的位数等于数据总线的宽度,指针的位数等于地址总线的宽度。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- C语言程序设计第四讲结构化程序设计之选择 0次下载
- 使用PG12864LCD设计的指针式电子钟C语言程序免费下载 50次下载
- MATLAB语言与C语言的区别资料下载
- 51单片机C语言应用程序实例精讲的代码合集免费下载 211次下载
- C语言指针与指针变量的简介和运算实例程序免费下载 14次下载
- C语言中的指针到底是什么?详细资料介绍和使用代码免费下载
- C语言指针的三个问题的详细资料说明
- 如何轻松理解C语言指针的详细资料说明 11次下载
- 轻松理解C语言指针的实验和详细资料说明 10次下载
- C语言教程之指针的详细资料说明 9次下载
- C语言程序设计教程之指针使用的课件免费下载 15次下载
- 如何学习c语言?C语言学习笔记资料免费下载 65次下载
- C语言编程和指针的学习详细资料概述 84次下载
- C语言的精髓——指针详解 17次下载
- C语言指针电子教程 77次下载
- 面试中的高频问题:指针函数与函数指针,你能完美应对吗? 775次阅读
- 详解C语言指针底层基本原理 1114次阅读
- 什么是C语言(void*)类型 2698次阅读
- 浅谈指针常量和常量指针 946次阅读
- 什么是void指针 1262次阅读
- C语言中的悬空指针和野指针是什么意思? 947次阅读
- C语言中指针的命令行参数 1036次阅读
- C语言指针和数组的区别 1777次阅读
- C语言指针相关的概念、语法及使用场景 1866次阅读
- C语言中的“二级指针”该如何理解 1.2w次阅读
- 指针和数组都是C语言的精髓所在 两者有何联系区别 3837次阅读
- 嵌入式开发之C语言的指针 3128次阅读
- 为什么C语言要引入指针_引入指针的好处是什么 2.2w次阅读
- C语言使用中指针和内存泄漏的问题和解决方案 4102次阅读
- 基于C语言中指针的基本用法解析 4704次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多