数据结构(一)指针、结构与链表(待更新)

2018-03-21  本文已影响0人  化身天使

一.指针

int  *Ptr;      //声明一个整型指针变量

int  y=7 ;      //声明一个整型变量并赋值为7

Ptr = &y ;    //&是取地址符号,&y就是得到y的地址,然后将y的地址存储到Ptr的内存空间(将y的地址赋值给Ptr)

&取地址符号,  *引用指针指向的值

示例

地址         35         36

变量        Ptr          y

值            36           7

这里采用简化的说法(计算机中内存地址一般是以16位16进制数表示,例如0x7ffc111e6da0)。

此时,运行在内存中的变量由三部分组成,一是地址,二是变量名,三是变量值(可能为空)。

(1) int  *Ptr; 语句声明了一个指针,假设系统将这个变量名Ptr存储在35号地址单元,这时候它还没有值,我们表示成这样。

变量        Ptr          

地址         35        

值            

(2)int  y = 7; 这里定义一个值为7的整型变量y,假设系统将这个变量名y和变量值存储在35号地址单元旁边的36号地址单元,示例如下

地址         35         36

变量        Ptr          y

值                          7

(3)Ptr = &y; 这个语句用&y得到y的存储地址也就是36,然后将36赋值给Ptr,也就是存储到35号地址存放变量值的空间

地址         35         36

变量        Ptr          y

值            36           7

(4)*Ptr为获得Ptr中存储的地址所指向的值,也就是36号地址存放的值

       *Ptr -->  36  -->  7          即 *Ptr = 7;            //Ptr存放的是地址36,地址36存放的值是7, *符号在这里获得36存储的值

cout << *Ptr ;  输出为7

cout << Ptr ;   输出为36                    //实际上的地址是类似与这样的 0x7ffeb92a2be4

cout << &Ptr ;  输出为它的地址35    //同上,它也是16位16进制

cout << &y ;   输出y的地址36           //同上

二.结构与链表实现

上一篇下一篇

猜你喜欢

热点阅读