- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言内存朱有鹏老师讲解
4.C语言专题精讲篇 - 4.1.内存这个大话题
第一部分、章节目录
4.1.1.程序运行为什么需要内存1
4.1.2.程序运行为什么需要内存2
4.1.3.位、字节、半字、字的概念和内存位宽
4.1.4.内存编址和寻址、内存对齐
4.1.5.C语言如何操作内存
4.1.6.内存管理之结构体
4.1.7、内存管理之栈
4.1.8、内存管理之堆
4.1.9、复杂数据结构
第二部分、章节介绍
4.1.1.程序运行为什么需要内存1
本节从本质上分析了计算机程序在计算机中是如何运行的,通过冯诺依曼结构和哈佛结构的对比,让大家对代码和数据之分有了清楚的认识。这些认识有助于你对程序运行过程的分析,从而保证将来写出优秀的程序代码。
4.1.2.程序运行为什么需要内存2
本节从本质上分析了计算机程序在计算机中是如何运行的,通过冯诺依曼结构和哈佛结构的对比,让大家对代码和数据之分有了清楚的认识。这些认识有助于你对程序运行过程的分析,从而保证将来写出优秀的程序代码。
4.1.3.位、字节、半字、字的概念和内存位宽
本节从逻辑上阐述内存的编程模型和逻辑认识,并且解释了内存单元的几个单位:位、字节、半字、字。通过本节学习希望大家从逻辑上对内存有一个认知,先建立起来大的框架性概念。
4.1.4.内存编址和寻址、内存对齐
本节重点讲述内存单元格和其地址的对应关系,同时讲了内存对齐的意义和重要性,试图带领大家对内存从逻辑和现实两个角度深入理解,以为后面的深入分析C语言特性打下基础。
4.1.5.C语言如何操作内存
本节主要讲C语言语法中对内存的使用,包括:变量定义、指针、数组等C语言基本语法,讲述这些语法和内存之间的内在联系,试图引导大家从内存的角度来理解这些语法特性。
4.1.6.内存管理之结构体
本节首先讲述数据结构的概念和意义,然后从数组讲起,使用数组的缺陷引出结构体,目的在于让大家明白结构体这种简单数据结构的内在,最后讲了通过结构体内嵌指针来实现面向对象,这是linux内核中常见的一种语法技巧。
4.1.7.内存管理之栈
4.1.8.内存管理之堆
4.1.9、复杂数据结构
第三部分、随堂记录
4.1.1.程序运行为什么需要内存
4.1.1.1、计算机程序运行的目的
计算机为什么需要编程?编程已经编了很多年,已经写了很多程序,为什么还需要另外写程序?计算机有这个新的程序到底为了什么?
程序的目的是为了去运行,程序运行是为了得到一定的结果。计算机就是用来计算的,所有的计算机程序其实都是在做计算。计算就是在计算数据。所以计算机程序中很重要的部分就是数据。
计算机程序 = 代码 + 数据 计算机程序运行完得到一个结果,就是说
代码 + 数据 (经过运行后) = 结果
从宏观上来理解,代码就是动作,就是加工数据的动作;数据就是数字,就是被代码所加工的东西。
那么可以得出结论:程序运行的目的不外乎2个:结果、过程
用函数来类比:函数的形参就是待加工的数据(函数内还需要一些临时数据,就是局部变量),函数本体就是代码,函数的返回值就是结果,函数体的执行过程就是过程。
int add(int a, int b)
{
return a + b;
} // 这个函数的执行就是为了得到结果
void add(int a, int b)
{
int c;
c = a + b;
printf(c = %d.\n, c);
} // 这个函数的执行重在过程(重在过程中的printf),返回值不需要
int add(int a, int b)
{
int c;
c = a + b;
printf(c = %d.\n, c);
return c;
} // 这个函数又重结果又重过程
4.1.1.2、计算机程序运行过程
计算机程序的运行过程,其实就是程序中很多个函数相继运行的过程。程序是由很多个函数组成的,程序的本质就是函数,函数的本质是加工数据的动作。
4.1.1.3、冯诺依曼结构和哈佛结构
冯诺依曼结构是:数据和代码放在一起。
哈佛结构是:数据和代码分开存在。
什么是代码:函数
什么是数据:全局变量、局部变量
在S5PV210中运行的linux系统上,运行应用程序时:这时候所有的应用程序的代码和数据都在DRAM,所以这种结构就是冯诺依曼结构;在单片机中,我们把程序代码烧写到Flash(NorFlash)中,然后程序在Flash中原地运行,程序中所涉及到的数据(全局变量、局部变量)不能放在Flash中,必须放在RAM(SRAM)中。这种就叫哈佛结构。
4.1.1.4、动态内存DRAM和静态内存SRAM
DRAM是动态内存,SRAM是静态内存。详细细节自己b
您可能关注的文档
最近下载
- 2025《云南咖啡产业出口美国现状及PEST分析案例》3400字.docx VIP
- 2025道德与法治三年级上册全册核心素养教案教学设计.pdf
- 人教PEP版英语六年级下册Unit 4 Then and now Part B(2) Let’s learn Listen, match and say 练习卷.docx VIP
- 新青岛版科学六三制五年级上册第一单元《光》测试卷及答案.docx VIP
- 电厂化学水处理系统操作规程.doc VIP
- 祝磊眼表疾病的诊疗进展.ppt VIP
- 二年级上册数学期中综合测试卷--北师大版.doc VIP
- (2025秋新版)人教版二年级数学上册全册教案(教学设计).pdf
- 房地产估价报告房地产估价报告精选.doc VIP
- 《数字营销——新时代市场营销学》 课件 第7、8章 内容营销、 社交媒体营销.pptx
文档评论(0)