- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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是静态内存。详细细节自己baidu
您可能关注的文档
最近下载
- 国家开放大学2024年12月《思想道德与法治试卷1-版本2》大作业参考答案.docx
- 《文明交通文明出行》PPT课件.ppt
- 2024小学道德与法治新教材培训:教材解读及教学建议.pptx VIP
- 赢顺云指标期货指标公式文华期货指标趋势做单必备神器.doc
- 《公共政策分析导论》 读书笔记.pdf
- 地砖铺贴工程施工工艺流程及验收标准..doc
- 心血管内科试卷及答案12(国外英文资料).doc
- 2024陕西榆林市黄河东线引水工程限公司招聘20人【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- 新高考新题型第19题新定义压轴题汇编(解析版).pdf
- YB-T 4381-2014 刚玉—莫来石砖.pdf VIP
文档评论(0)