一、前言
数据结构所需的基础知识多,要理解好他就需要思考总结,不懂的名称就需要多问多百度。让我们站在巨人肩旁前行,学好数据结构;努力发现自己有没有走上数据结构的门口。
二、本文导图
三、讨论与反思
1.遇到本文中程序编写的第一个词语就不懂了(第一遍学习不需要思考懂与不懂)
2.图中的元素有很多的含义,能读懂多少(第一遍学习不需要思考懂与不懂)
四、基础记录
1. 指针和数组的关系
指针 和 一维数组
①数组名
一维数组名是个指针常量,它存放的是一维数组第一个元素的地址, 它的值不能被改变一维数组名指向的是数组的第一个元素
②下标和指针的关系
a[i] <<==>> *(a+i)
假设指针变量的名字为p
则p+i的值是p+i*(p所指向的变量所占的字节数)
③指针变量的运算
指针变量不能相加,不能相乘,不能相除
如果两指针变量属于同一数组,则可以相减
指针变量可以加减一整数,前提是最终结果不能超过指针允许指向的范围
p+i的值是p+i*(p所指向的变量所占的字节数)
p-i的值是p-i*(p所指向的变量所占的字节数)
p++ <==> p+1
p–<==> p-1
2.const的用法
const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。另外CONST在其他编程语言中也有出现,如C++、PHP5、C# .net。
(1)可以定义const常量,具有不可变性。
例如:const int Max=100; Max++会产生错误;
(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。
例如: void f(const int i) { ………} 编译器就会知道i是一个常量,不允许修改;
(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。 同宏定义一样,可以做到不变则已,一变都变!
如(1)中,如果想修改Max的内容,只需要:const int Max=you want;即可!
(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 还是上面的例子,如果在函数体内修改了i,编译器就会报错;
例如: void f(const int i) { i=10;//error! }
五、总结
收获巨大,不学不知道,已学能吓自己一跳,跳起来(跳去哪了、怎样跳的故事)时,我发现看远了很多。课本中没有定义的知识点很多,有些关键点需要学习者学过相关的基础知识才能理解。我正在努力探索自己有没有走上数据结构的门口,欢迎指导和交流。