C语言指针学习二

来源:互联网 发布:韩信点兵算法流程图 编辑:程序博客网 时间:2024/04/29 14:29

一、指针的重要性:

    ①指针的可以表示一些复杂的数据结构:

            比如链表,树(如家谱,操作文件夹父目录与子目录),图(如告诉你几个城市点,求出最短路径),...,

            以我个人的学习经历来讲,如果C语言指针没学好,数据结构基本上不要考虑学了。

            因为市面上大多数教材都是C为主,而这些复杂的数据结构的链式存储以指针为主。

            你可能根本就看不懂人家的伪代码,更别谈自己写个实现了。

   ② 快速的传递数据:

   ③使函数快速的返回一个以上的值:

            我看见别人在函数参数中加了&变量,接着那个变量就被用到了下面的函数,

            当时有点搞不明白,现在想想应该是通过直接操纵该内存地址出的单元,

            修改其内部变量,完了之后,有通过地址可以再次访问到处理后的值。

            这个参数最终拿到了一个值,功能上有点像函数返回了一个值,下次还可以被再用到。

   ④直接访问硬件:

              指针一旦拿到内存(操作系统内存和主板上的内存条对应着)单元编号,就可以办很多事了。

              所以有人说过C语言是最接近计算机的高级编程语言。

              之前看过一些资料说C语言也可以应用在嵌入式开始领域,大概就是这个原因。

   ⑤能够方便的处理字符串:

               很多c++代码直接定义字符指针类型的数组操作字符串。

   ⑥是理解面向对象语言引用的基础:

                java中没有指针,但有个概念叫做引用。


二、深入理解指针的预备知识:

深入理解指针需要一些组成原理和操作系统的知识:

地址:
     内存单元的编号
     从零开始的非负整数

硬盘中的数据先调入内存条

CPU先把内存条中的数据读进CPU,
先处理这个数据,处理完数据后,
再把结果写进内存条,内存条的数据
达到一定量后,在写入硬盘。

CPU要对内存条进行处理需要通过三根线:
①控制总线
②数据总线
③地址总线

CPU是读数据还是写数据是通过控制总线处理:
(是只读还是只写,是可读还是可写)

数据线来进行数据传输,不管是读入数据到CPU,
还是写入数据到内存条都存在数据传输。

地址线是来确定哪一个单元进行操作,因为内存条中有好多内存单元。




0 0
原创粉丝点击