C语言内存朱有鹏老师答题.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档