码迷,mamicode.com
首页 > 编程语言 > 详细

C语言的内存与地址(C和指针)

时间:2014-08-28 16:56:20      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:ar   数据   问题   sp   c   设计   程序   har   不同的   

  我们把计算机的内存看作是一条长街上的一排房屋,每座房子都可以容纳数据,并通过一个房号来标识。

    计算机的内存由数以亿计的位组成,每个位可以容纳值0和1.由于一个位所能表示的值得范围太有限。所以单独的位的用处不大,通常许多位合成一组作为一个单位,这样就可以存储范围较大的值。这里有一幅图,展示了现实机器中的一些内存位置。

bubuko.com,布布扣

这些位置的每一个都被称为字节,每个字节都包含了存储一个字符所需要的位数。在许多现代的机器上,每个字节包含8个位,可以存储无符号值0至255.(我的理解是这就是我们所说的char类型)上图这张图并没有显示这些位置的内容,但内存中的每个位置总是包含一些值,每个字节通过地址来标识,如上图方框上面的数字所示。


为了存储更大的值,我们把两个或更多哥字节何在一起作为一个更大的内存单位,例如,许多机器以字为单位存储整数,每个字一般由两个或4个字节组成,其实也就是我们所说的int等类型。


bubuko.com,布布扣

由于它们包含了更多的位,每个字可以容难的额无符号整数范围更大。


注意:尽管一个字包含了4个字节,它仍然只有一个地址,至于它的地址是它最左边的那个字节还是最右边的那个字节的位置,不同的机器有不同的规定。另一个需要注意的是硬件事项是边界对齐问题,在要求边界对齐的机器上,整型值存储的起始位置只能是某些特定的字节,通常是2或4的整数,但这些问题是硬件设计者的事情,它们很少影响C程序员。我们只对两件事情感兴趣:

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

2  内存中的每个位置都包含一个值。


变量的值就是分配给该变量的内存位置所存储的数值,即使是指针变量也不例外。指针变量的值是一个内存地址。用*取指针变量的值得到的就是该指针变量指向的内存地址存储的值。

C语言的内存与地址(C和指针)

标签:ar   数据   问题   sp   c   设计   程序   har   不同的   

原文地址:http://blog.csdn.net/fuyuehua22/article/details/38866243

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!