预备知识
指针
指针的重要性:(内存是可以被CPU直接访问的,硬盘不行
主要靠地址总线,数据总线,控制总线。)
指针是C语言的灵魂
定义
地址
地址就是内存单元的编号
从0开始的非负整数
范围:0--FFFFFFFF[0-4G-1](地址线是32位,刚好控制2的32次)
指针:
指针就是地址地址就是指针
指针变量是存放内存单元地址的变量
指针的本质是一个操作受限的非负整数(不能加乘除,只能减)
分类:
1、基本类型的指针
2、指针和数组的关系
结构体(C++中用类也能实现)
为什么会出现结构体
为了表示一些复杂的数据,而普通的基本类型变量无法满足要求
什么叫结构体
结构体是用户根据实际需要自己定义的复合数据类型
如何使用结构体
两种方式:
structStudentst={,"zhangsan",20}
structStudent*pst=st;
1.
st.sid
2.
pst-sid
pst所指向的结构体变量中的sid这个成员
注意事项:
结构体变量不能加减乘除,但可以相互赋值
普通结构体变量和结构体指针变量作为函数参数的传递
(病毒就是靠访问正在运行的那些程序所占用的内存。Java中规定局部
变量必须初始化,因为这些变量一开始都是垃圾值,但是属性不是必须
初始化的,因为已经默认初始化为0)
动态内存分配和释放(动态分配的内存一定要手动释放,否则造成内存
泄露。)
(java中Aaa=newA();其实就是A*p=(A*)malloc(sizeof(A)))
............................................................................................................................................强力推荐B站上的青岛大学数据结构王卓老师的,讲的比王道好很多,还比陈越的更加基础,我二刷的时候会整理把PPT都截下来,我会持续更新的。期望对别人也有很大的帮助。欢迎