C语言指针学习二
来源:互联网 发布:韩信点兵算法流程图 编辑:程序博客网 时间:2024/04/29 14:29
一、指针的重要性:
①指针的可以表示一些复杂的数据结构:
比如链表,树(如家谱,操作文件夹父目录与子目录),图(如告诉你几个城市点,求出最短路径),...,
以我个人的学习经历来讲,如果C语言指针没学好,数据结构基本上不要考虑学了。
因为市面上大多数教材都是C为主,而这些复杂的数据结构的链式存储以指针为主。
你可能根本就看不懂人家的伪代码,更别谈自己写个实现了。
② 快速的传递数据:
③使函数快速的返回一个以上的值:
我看见别人在函数参数中加了&变量,接着那个变量就被用到了下面的函数,
当时有点搞不明白,现在想想应该是通过直接操纵该内存地址出的单元,
修改其内部变量,完了之后,有通过地址可以再次访问到处理后的值。
这个参数最终拿到了一个值,功能上有点像函数返回了一个值,下次还可以被再用到。
④直接访问硬件:
指针一旦拿到内存(操作系统内存和主板上的内存条对应着)单元编号,就可以办很多事了。
所以有人说过C语言是最接近计算机的高级编程语言。
之前看过一些资料说C语言也可以应用在嵌入式开始领域,大概就是这个原因。
⑤能够方便的处理字符串:
很多c++代码直接定义字符指针类型的数组操作字符串。
⑥是理解面向对象语言引用的基础:
java中没有指针,但有个概念叫做引用。
二、深入理解指针的预备知识:
深入理解指针需要一些组成原理和操作系统的知识:
地址:
内存单元的编号
从零开始的非负整数
硬盘中的数据先调入内存条
CPU先把内存条中的数据读进CPU,
先处理这个数据,处理完数据后,
再把结果写进内存条,内存条的数据
达到一定量后,在写入硬盘。
CPU要对内存条进行处理需要通过三根线:
①控制总线
②数据总线
③地址总线
CPU是读数据还是写数据是通过控制总线处理:
(是只读还是只写,是可读还是可写)
数据线来进行数据传输,不管是读入数据到CPU,
还是写入数据到内存条都存在数据传输。
地址线是来确定哪一个单元进行操作,因为内存条中有好多内存单元。
- C语言指针学习 二
- C语言指针学习二
- C语言指针学习笔记二
- C语言指针学习(二) ---- 指针与数组
- C语言(二)指针
- C语言------指针(二)
- C语言指针(二)
- 学习C语言指针
- C语言指针学习
- C语言指针学习
- c语言指针学习
- c 语言指针学习
- C语言指针学习
- C语言指针学习
- C语言指针学习
- C语言学习-指针
- c语言 指针学习
- C语言学习-指针
- 项目管理流程
- Django forms 里面 报错 Non-ASCII character 'xd3' in file
- (二十九)大数据系统学习笔记(四)——Hadoop的搭建
- C++ map的基本操作和使用
- packstack 安装 openstack 走过的弯路
- C语言指针学习二
- poj 2378 Tree Cutting (树形dp)
- MySQL及Navicat客户端的安装及使用
- yate学习--yateclass.h--class YATE_API Runnable
- 字符串处理技术
- c++_数组名与指针
- 《Netty 权威指南》—— 伪异步IO编程
- ubuntu修改ls显示的目录颜色
- python中%s和%r的区别