博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

计算机的内存由数以万计的位(bit)组成,每个位可容纳值0或1。

 

由于一个位所表示的范围太有限,通常将许多位合成一组作为一个单位来存储范围较大的值。

现代机器上,一个字节包含8个位,可以存储无符号值0~28-1,或有符号值 -27~27-1。

 

为了存储更大值,把2个或更多字节合在一起作为更大的内存单元,很多机器以字为单位来存储整数,每个字一般由2个~4个字节组成。

尽管一个字包含4个字节,它仍然只有一个地址。至于地址是最左边字节的位置还是最右边字节的位置,不同机器有不同规定。

另外一个需要注意的硬件事项是边界对齐(boundary alignment)。在要求边界对齐的机器上,整数值存储的起始位置只能是特定字节(通常是2或4的倍数)。但程序员无需关心硬件的实现,他们只需要知道:

1、内存中每个位置由独一无二的地址标识。

2、内存中每个地址包含一个值。(程序员和机器都不能通过值的位模式来判断其类型,类型是通过值的使用方式来隐式地确定。)

 

声明一个指针变量并不会自动分配任何内存,对指针执行间接访问(解引用)之前,指针必须初始化:指向现有内存,或是动态分配内存。

对NULL指针执行解引用后,有2个可能的后果:返回内存位置0的值;终止程序。(因编译器而异)

 

posted on 2015-05-06 10:57  wulala_lala  阅读(100)  评论(0)    收藏  举报