一。衡量算法的标准:
1.时间复杂度 大概程序执行的次数,而不是时间。因为程序执行的时间会因为机器配置和环境的不同而不同。
2.空间复杂度 算法执行过程大概所占用的最大内存。
3.难易程度
4.健壮性
二。数据结构的地位
数据结构是软件中最核心的课程
程序=数据的存储+数据的操作+可以被计算机执行的语言
三。指针
指针的重要性:
1.表示一些复杂的数据结构。
2.快速的传送数据。
3.使函数返回一个以上的值。
4.能否直接访问硬件。、
5.能够方便的使用数组和字符串。
6.是理解面向对象语言中引用的基础。
指针是c语言的灵魂
地址:1.地址就是内存单元的编号 2.从0开始的非负整数 3.范围:0--FFFFFFFF【0——4G-1】
指针:1.指针就是地址 地址就是指针
2.指针变量是存放内存单元地址的变量
3.指针的本质是一个操作受限的非负整数
四。内存
内存的基本概念:
1.内存是用来存储数据的设备。他的存储速度介于寄存器和硬盘之间。
2.内存是CPU唯一可以访问的大容量存储设备,所有硬盘中的程序和数据必须调入内存之后方可被CPU执行。
切记:CPU不能直接处理硬盘中的数据。
3.内存的问题是软件开发过程中最核心的问题之一。如内存的分配,内存的释放,内存什么时候分配,由谁来分配,
由谁来释放,分配在什么地方,访问权限如何。
4.内存是多字节组成的线性一维存储空间。
5.内存的基本划分单位是字节。
6.每个字节含有8位。每一位放一个放1个0或1个1.
7.字节和编号是一一对应的。每个字节都有一个唯一确定的编号,一个编号对应一个字节,这个编号也叫地址。、
8.一个系统所能管理的内存空间的大小取决于参与编号的二进制位数。
如:DOS系统20位寻址方案 可控制2*20B即1MB.
五。软件运行与内存关系(垃圾数据)
内存是在操作系统的统一管理下使用的。
1.软件的运行需要向操作系统申请存储空间,在内存空闲空间足够时,操作系统将分配一段内存空间并将外存中软件
拷贝一份存入改内存空间,并启动该软件的运行。
2.在软件运行期间,该软件所占内训空间不再分配给其他软件。
3.当软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内存空间中遗留下来的数据),以便载次
分配给其他软件使用。
综上所述:一个软件分配到的空间中极有可能存在着以前其他软件使用过的残留数据。所以通常情况下我们为一个变量、
一个数组,分配好存储空间后都要对改存储空间进行初始化。
六。指针的基本概念
int i=10;
int* p=&i;//等价于int* p; p=&i;
1.p存放了i的地址,所以我们说p指向i。
2.p和i是完全不同的两个变量,修改其中任意一个的值都不改变另一个。
3.p指向i,*p就是变量本身。更形象的说所有出现*p的地方都可以换成i,所有出现i的地方都可以换成*p.
注意:指针变量也是变量,只不过他存放的不是内存单元的内容,只能存放内存单元的地址。
普通变量前不能加*
常量和表达式前不能加&
通过被调函数修改主调函数中普通变量的值
1.实参为相关变量的地址。
2.形参为以该变量的类型为类型的指针变量。
3.在被调函数中通过 *形参变量名 的方式可以修改主函数相关变量的饿值。
分享到:
相关推荐
数据结构 基础知识 涵盖所有知识 课件 希望对你有用啊
数据结构基础知识.doc 数据结构基础知识.doc 数据结构基础知识.doc 数据结构基础知识.doc 数据结构基础知识.doc 数据结构基础知识.doc 数据结构基础知识.doc 数据结构基础知识.doc 数据结构基础知识.doc 数据结构...
数据结构基础知识,附带有考试习题,还有部分总结 新手有用
数据结构基础知识.pdf
数据结构基础知识总结,包含栈队列树图 散列表等,参加了一些个人的见解
它是一个非常好的数据结构基础知识题集,有孙成福老师结合数据结构整理而成,对那些自考和平时学数据结构的朋友非常有用,对那些刚开始学习数据结构基础知识的朋友也很有帮助
数据结构基础知识点汇总 包括链表 数据 线性结构 树结构方面的内容
数据结构基础知识.docx
数据结构基础知识要点.docx
数据结构基础知识讲解,有关队列、链表、堆栈、树的建立与相关抄作。以及这些数据结构的属性。
redis数据结构基础知识及案列(每个数据结构一个案例)
数据结构基础知识要点说明.doc
数据结构是计算机专业课的基础,学好数据结构才能有计算机的一种思维。本课件详细介绍了关于数据结构的有关问题。
数据结构 c#的实现 包括了 算法、线性表、 栈和队列、串和数组、数和二叉树、 图、 排序、 是很好的基础技术资料
对初学数据结构这门课者有帮助。 由于本人是新手,缺乏积分,无奈又想下别人资源,在此收点分
对您掌握数据结构很有帮助,本课件是c语言版的数据结构 很好的课件,下来看看吧