内存与地址及指针变量和内容

内存和地址

所有的数据都是存放在存储器中的, 一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等。

为了正确地访问这些内存单元, 必须为每个内存单元编上号, 根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。 既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。

指针变量和内容

对于一个内存单元来说,单元的地址即为指针, 其中存放的数据才是该单元的内容。

在C语言中, 允许用一个变量来存放指针,这种变量称为指针变量。因此, 一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。严格地说,一个指针是一个地址, 是一个常量。而一个指针变量却可以被赋予不同的指针值,是变量。 但常把指针变量简称为指针。

定义指针的目的是为了通过指针去访问内存单元。 既然指针变量的值是一个地址, 那么这个地址不仅可以是变量的地址, 也可以是其它数据结构的地址。

在C语言中, 一种数据类型或数据结构往往都占有一组连续的内存单元。 用“地址”这个概念并不能很好地描述一种数据类型或数据结构, 而“指针”虽然实际上也是一个地址,但它却是一个数据结构的首地址, 它是“指向”一个数据结构的,因而概念更为清楚,表示更为明确。 这也是引入“指针”概念的一个重要原因。

注意:

不管是程序员还是计算机都无法通过值的位模式来判断它的类型,类型是通过值的使用方法来隐式确定的,编译器能够保证值的声明和值的使用之间的关系是恰当的,从而帮助我们确定值得类型。

 

posted @ 2018-04-05 10:40  刘-皇叔  阅读(455)  评论(0)    收藏  举报