孔乙己学c语言(6)

2 变量与常量

变量有三个要素,变量名,数据类型和值。

在实际编程的过程中,对变量进行操作一共有三个参与者。程序员,编译器,内存。这三个参与者分别扮演了不同的角色,内存就如同一个仓库,这个仓库里面分成了很多个大小相同的仓位。每个仓位的大小相同,把所有的仓位都按照顺序进行了编号,而且每次有人使用仓位的时候,仓位是不允许再分的,最少分配一个仓位。这个仓位其实就是字节(都是80/1)。字节是C语言进行内存分配的最小单位(但不是操作的最小单位)。

有了仓库,接下来就需要一个仓库的管理者,编译器就好像是这个仓库管理员。

每当有人需要使用仓库时,这里面我们把每一个变量都看作是一次任务。仓库管理员会根据使用者的要求提供对应的仓位使用,分配的时候,管理员会遵守两个原则:

第一个原则,对于使用者对同一次任务申请的仓位,分配的仓位的序号必须是连续的,比如使用者这批货物需要4个仓位,那么5,6,7,8就是合法的,而3,6,7,8就是不合法的。

第二个原则对于使用者不同次任务申请的仓位,分配的仓位的序号可以是不连续的。

程序员在这里扮演的角色就是仓库的使用者,作为一个使用者,同样也有两点必须明确,那就是:

你必须在使用仓库之前向仓库管理员提出申请。

你必须明确向管理员说明你每次需要的仓位的数量。

在整个的过程中,(使用者)程序员作为使用者并不直接与仓库(内存)打交道,使用者只是在需要时向管理员提出申请,但是这里面有一个约定,使用者并不需要知道仓库(内存)里面一共有多少个仓位(字节),而且也知道自己申请的仓位的具体位置。这样做的目的也是为了方便,因为仓库(内存)的容量是以G为单位的。如果需要5个任务(变量)的话,假如分配的地址是分别是:0x000E31DA0x000E41000x000E4108等等开始的5个地址,这样使用者在使用起来有很大的困难,

为了解决地址名又长又难记的困难,管理员(编译器)允许使用者(程序员)自己定义分配的仓位的名字,比如这次的任务我需要一个仓位,我自己可以给这个仓位起个名字比如FirstA,然后向管理员提出申请。管理员(编译器)分配了一个仓位0x000E4100以后,管理员(编译器)在自己的记录上写下了这样一个内容

变量名

对应地址

FirstA

0x000E4100

这时这个约定就产生作用了,实际上你并不知道分配给你的仓位是哪一个,但是只要需要使用的时候,你向编译器提出FirstA这个名字,编译器就会自动的找到0x000E4100这个仓位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值