- 1、本文档共88页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构学习笔记(郝斌老师)
学算法,不要想着自己能够完完整整的自己编一个算法,也不要觉得自己想不出来就备
受打击。
只要能看懂别人写的算法,然后反复地自己敲,反反复复地出错,然后再敲,最后实现
能够把这个程序敲出来就行了。
看懂主要分三步:1 看懂主函数的流程;2 明确每一个子函数的功能;3 试数,就是自
己往里面代数。
总搞不懂,看不懂地算法,就把它背会,然后反复想,期待能够搞定(基本很少,但有)。
数据结构研究的就是个体的存储和个体与个体之间关系的存储问题,算法研究的是对数据的
操作问题,并且不同的存储结构会影响算法的使用,举个简单的例子,要想实现一个功能,
你首先需要把数据拿出来,对于数组来说用for 循环就可以实现,但对于链表就不可以了,
所 以 说 算 法 依 附 于 存 储 数 据 的 结 构 , 结 构 不 同 算 法 必 定 会 有 差 异
(控制线用来控制cpu 对于内存条,是只读还是只写,还是可读或可写)
两个指针变量之间只可以相减,不可以相加,相乘或相除,因为这样的运算无意义
对于单个指针可以进行加法或者减法运算 (自增,自减)
“指向同一块连续空间的不同存储单元”这个要求存在,是因为不同类型的指针变量,相
减无意义,例如,一个保存的是整型的地址,另一个保存的是实型的地址,相减干啥?
指针就是地址,计算机里的地址值就是编号,所以可以说指针就是编号。
Double 类型变量占8 个字节,一个字节占8 位,意思是,一个字节可以存放8 个0 或
者8 个1。
一个字节用一个地址表示 (一个字节一个编号),那么double 类型变量因为占8 个字
节,那么就会有8 个地址,那么指针中究竟存放的是这8 个字节中的哪个地址呢?
解: 对于变量来说,要用它的第一个字节的地址来表示整个变量的地址。在计算机中的地
址总线中用32 根线 (即32 位)来存储变量在内存中所占首字节的地址,意思是用四个字节
来存储某变量首字节的地址。
所有的指针变量占四个字节,这意味着,一个指针变量无论它指向的变量占多大的字节,
它永远只占四个字节。
所以,指针中究竟存放的是这8 个字节中的第一个字节的地址。
据此,做下面这个题
问两次输出的q 相差多少?
答:因为每个double 类型变量占8 个字节,一个字节用一个地址来表示,用一个变量中的
首地址 (即第一个字节的地址)来表示变量的地址。意味着两个double 类型变量之间有8
个地址值,所以两个地址值应该相差8;
运行结果:第一个数据+8 等于第二个数据。 (16 进制)
指针与一维数组
# include stdio.h
int main(void)
{
int a[5]; //a 是数组名 5 是数组元素的个数 元素就是变量 a[0] -- a[4]
// int a[3][4]; //3 行4 列 a[0][0]是第一个元素 a[i][j]第i+1 行j+1 列
int b[5];
//a = b;//error a 是常量
printf(%#X\n, a[0]);
printf(%#X\n, a);
return 0;
}
/*
在Vc++6.0 中的输出结果是:
0X12FF6C
0X12FF6C
Press any key to continue
总结:
一维数组名
一维数组名是个指针常量,常量意味着,其值不可以被改变
它存放的是一维数组第一个元素的地址
*/
指针变量,变量,这两种变量的“变”,一定要好好理解,它的变化范围是什么,变化
对象是什么,一定要搞清楚。
指针变量也是变量,它与变量的区别在于其存放的东西不一样,这就意味着变化的对象
不一样;以及变化的范围不同。
指针变量存放的是地址值(为什么要经常用字母p 来表示一个指针变量,就是因为它里
面存放的是地址值,是位置信息,英文单词position 的首字母为p),地址值是变量在定义
时计算机赋给变量的一个计算机识别的标识,它的值是计算机编好的一系列的编号。所以,
指针变量的变化范围就是那些所有的地址值编号,一般来说就是以16 进制表示的从0 开始
的
您可能关注的文档
- 宣传和报道管理制度.doc
- 寻找自我_自我相关物主代词的编码与theta节律的活动_周爱保.pdf
- 小型工商业系统标准化产品配置方案.pdf
- Analysis of teaching high school English classroom organization(分析高中英语课堂教学的组织).doc
- 小学语文同音字汇总不用再担心孩子傻傻分不清楚了.docx
- 小组合作学习如何面对全体学生.doc
- 工具变量 两阶段最小二乘.pdf
- 常用贴片LED型号及参数.ppt
- 工厂颜色标识管理!.pdf
- 常见火灾分类及灭火器配置标准.pdf
- 大学生职业规划大赛《新闻学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《应用统计学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《中医学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《信息管理与信息系统专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《汽车服务工程专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《水产养殖学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《市场营销专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐表演专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐学专业》生涯发展展示PPT.pptx
文档评论(0)