数据结构心得总结(持久更新)
1数据结构学的是数据之间的一种组织架构;
2.数据结构主要分为4个部分:线性结构和非线性结构以及排序和搜索,数据结构的所有的学习都在为搜索做基础。
3.数据结构,要清楚数据采用何种类型,他们的基本类型结构由什么构成,该结构有什么特点等。
4.编译器(IDE):集成开发环境(IDE,Integrated Development Environment )
5.计算机语言: 机器语言 --》 汇编语言 –》高级语言
其中机器语言是直接被计算机用于读取数据的,它是一只指令集的机器码。
汇编语言:是一种低级语言,直接面向机器的程序设计语言,是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
高级语言:相对于汇编语言是最接近自然语言和数学公式的编程,编程的程序成为源程序。代表有c语言 、c++、c# java等等,其中c语言是高级语言中的低级语言。
5.一个高级计算机语言要被cpu直接读取数据,需要经过以下四步骤 预处理—》编译—》汇编---》链接
预处理:以#开头,主要功能是实现引入头文件、宏替换、文件包含。 将 ***.c文件----》***.i 文件。
编译: 对预处理代码进行翻译、语法分析,将源代码翻译生成一种中间语言即 汇编语言。 将***.i ----> ***.s 。
汇编: 将汇编代码编译生成目标代码 、即目标文件,也成为机器代码(即二进制文件),以便计算机cpu读取。 将***.s----->***.o 。
链接: 将生成的目标文件和其他文件合并在一起,生成一种可执行文件(windows平台下) 将 ***.s--->***.exe 。
6.static :在函数内部使用的变量,要在函数外部使用,就需要用关键之static 将栈区的自动变量,变为全局变量放在全局数据去,供本文件使用,直至本次程序结束。
7.指针就是地址,地址就是指针, 指针变量A = 指针变量B, 意思就是指针变量A指向指针变量B所指的空间
8.free(指针),free的是指针所指向的空间
9.结构体变量作为实参传递,有三种传递形式:A直接传递结构体变量。B传递结构体变量的地址。C以引用形式对结构体变量进行传递(效率最高,不用开辟空间)
要改变结构体变量内部成员的值,就不能用A形式传递,必须以B/C的形式完成。
10.对结构体变量成员进行访问:两个方式:A 用成员访问符 .。 B用指针指向符访问 ->
11 switch case 语句中 不能定义变量,必须定义在该选择语句外边
switch (条件)
{
case 1:
break;
…
default
break;
}
12.break ;是用来终止循环的和跳出switch语句的两个功能 ,continue是用来结束本次循环,也就是说不会执行continue后面的代码,然后再去判断条件是否进行下一次循环。
13.野指针:指向不为空,指向非法(非法指的是,所指向的空间已经不属于你了,你要是相对其进行写操作,就是非法了),为了预防野指针,当我们释放了指针所指的空间时候,就要立即对其赋空,虽然指针所指的空间被干掉了,但是p指针还没有干掉,他有指向,遗憾的是你不能向该空间写数据(因为该空间已经不属于你了),(虽然你或许可以读到数据,原因是你读数据的时候可能,指针p所指的空间还没有被其他人使用),为了预防野指针,释放完立即赋NULL,是一个好习惯。
空指针 指向0x00000000地址
14. == 、>、< … 属于比较运算符, 而 = 是赋值运算符
15.一个程序在程序内存的分布:代码区、数据区、堆区、栈区
16.大端:高地址存放低字节,低地址存放高字节,与我们阅读习惯一致.
小端: 高高 低低 (vs采用小端)。