C语言学习之内存理解 文章目录 一、程序运行为什么要内存1.1 计算机的运行目的1.2冯洛伊曼结构和哈弗结构1.3动态内存DRAM,静态内存SRAM1.4为啥需要内存 二、位、字节、半字、字的概念和内存位宽2.1什么是内存2.2内存的大小2.3内存存放的模型2.4内存位宽2.5位,字节,半字、字的关系 三、内存的编址,寻址、对齐3.1 内存的编址方式3.2内存和数据类型的关系3.3内存对齐 四、如何操作内存4.1C 语言对内存地址的封装4.2 用数组访问内存4.3用指针访问地址 一、程序运行为什么要内存 1.1 计算机的运行目的 就像你打工是为了赚钱一样,所以计算机运行的目的也是为了得到一定的结果。再出及结果之前还有一个很重要的东西就是过程,有的人注重结果,有的人注重过程,有的人注重结果和过程。就类似于函数: 程序的本质就是很多函数相继运行的过程,如果程序不运行,那么就只是相当于一个一个字模和数字组合起来的占用内存的渣滓。只有程序运行起来,我们才能得到结果。 1.2冯洛伊曼结构和哈弗结构 冯诺依曼结构:数据和代码放在一起; 哈佛结构:数据和代码分开存放。 代码就是函数,单片机代码放在flash中。数据就是全局变量,和局部变量单片机放在RAM中。 1.3动态内存DRAM,静态内存SRAM 动态内存:就是程序员而分配的内存,malloc,需要程序员自己去释放,free。 静态内存:内存自己分配的,不需要我们自己去释放,比如定义的一个数组啊什么的。 1.4为啥需要内存 因为越大的程序越需要很多的数据来支撑,而数据是存放在内存的,所以需要内存。 同时管理内存也是一个很重要的过程,因为内存不是无限大的,循环利用才是一个优秀程序员应该必备的。 二、位、字节、半字、字的概念和内存位宽 2.1什么是内存 硬件角度:就是电脑的一个配件,需要他才能组成一个完整的计算机。 软件角度:就是一个一个随机访问的东西,只要你给地址,就可以访问这个地址的内存。就相当于你在超市,你付钱就可以买到东西,你付什么东西的钱,就可以买到什么东西。 2.2内存的大小 内存的大小在理论上是无穷大的,因为我们可以不停的加加,类似于数数,我可以从一不听的往后数,当然我们不可乱数,必须按照规矩来(也就是每个内存的地址都是唯一的不能改变)。 在实际上,我们的内存是有限的,就向你不可能修一座无线高的大楼,所以用操作系统来说,32位操作系统我们的的可以操作大小就是2的32次方(当然可能有部分偏差,很实际的例子就是我们8G的优盘,空间只有7个多G,没有8G) 2.3内存存放的模型 32位的内存存放方式: 




2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/28823.html