C语言中对内存的感悟

8 篇文章 0 订阅
1 篇文章 0 订阅

对内存的一些感悟


(1)计算机程序 = 代码 + 数据
代码就是函数,数据就是全局变量、局部变量。
(2)冯诺依曼结构:将代码和数据存放在一起。哈弗结构:将数据和代码分开存放。代码是不变的(存放在ROM只读),数据是随时可变的(存放在RAM随机存储器),所以分开放的好处就可以方便数据管理,还可以避免代码被无意识修改导致的系统崩溃。
(3)在单片机中,程序代码放在ROM(flash)中,数据放在RAM中,单片机采用SRAM,SRAM不需要初始化就可以使用,DRAM需要先初始化再使用。
(4)内存在编程中天然是用来存放变量的,因为有内存,所以C语言才能定义变量。因此内存是用来存储可变数据的。
(5)内存单元的大小单位有4个,从小到大是:位<字节<字。位就代表二进制位。
(6)内存编制是以字节为单位。
(7)数据类型是用来定义变量的,而这些变量需要存储运算在内存中。所以数据类型必须和内存相匹配才能获得最好的性能。32位系统本身配合内存是32位,这样硬件配置最适合32位的int型变量,访问效率最高。同样也可以定义8位或者16位类型变量,但是实际上访问效率不高。
(8)说到数据类型就要想到两点:1.长度,2.解析方式。int a 的解读方法是:a实际是一个地址,由编译器自动分配该地址。例如这个地址是0,那么int 0就表示从地址0开始0,1,2,3都是该变量占的空间(长度),又因为内存编制是以字节为单位,所以也就是4字节(32位)。这0 1 2 3地址中存放的是一个Int型变量。
(9)一个函数的函数名字实际上也就是这段代码的首地址。
(10)定义结构体最基本的方法:

struct ages             //定义结构体类型ages
{
	int age1;           //结构体成员1
	int age2;			//结构体成员2
};
/************定义完类型还得定义变量后才可以使用**************/
struct ages age;        //定义变量age
/************这样就可以给成员赋值了**************/
age.age1 = 10;
age.age2 = 20;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值