对指针的理解

指针的定义:
在计算机内部硬件层面,任何内存地址有两个属性。
位置属性:是内存地址的编号,方便程序找到这个位置。相当于门牌号。
内容属性:是内存空间中所存储的内容。相当于门牌号地面住的人。

对于高级语言编程来说:
任何一个变量,都有一个变量标识符(用于操作系统找到这个变量)和变量内容(变量里的内容)两个属性。
在定义变量之后,系统给变量提供了标识符用于内存空间查找方式(名称属性,即位置属性),
同时在指定的内存空间中记录变量的内容(即内容属性)

在C语言中的指针型变量是指变量中的内容是内存地址的一种变量。
同样这个变量也有两个属性,一个是名称属性,另一个是内容属性。

C 语言中提供了两个地址相关的运算符: *, &

“*”是查找指针变量的内容属性值,并读取该位置内存的内容属性值。
&是取得变量的名称属性,并向系统获得该标量系统所分配内存的位置属性值。

指针定义过程中的理解:

int *p;

p是指针型变量的名字(标识符)
*p 取得指针p中内容属性值。找到位置属性值与该值相同的内存。读取找到的内存的内容属性值. 简称p指向的内容。

int *p 的意思是,p所指向的内容 是整数类型。

int **p;

p是指向指针的指针。p的内容属性值是指针(内存地址), 同时p的内容属性值也是指针(内存地址)。*p的内容是整数型变量。

你可能感兴趣的:(对指针的理解)