首页 > 代码库 > _Obj* __STL_VOLATILE* __my_free_list

_Obj* __STL_VOLATILE* __my_free_list

今天在读《STL源码剖析》空间配置器第二级时看到了这句,有点不解,于是查阅后知:

obj后面是个指针 STL_VOLATILE也应该是个类型定义的吧,程序中应该有define来对它定义。所以就是指针的指针。。

指针,也就是地址,所以是__my_free_list是一个地址,*__my_free_list指向的是__my_free_list这个地址所在存储区的变量值。而 __STL_VOLATILE* __my_free_list的值也是一个地址, *__STL_VOLATILE* __my_free_list所指向的是 __STL_VOLATILE* __my_free_list 这个地址所在存储区的变量的值,也就是__my_free_list这个地址。

说的很绕,换个说法吧,比如__my_free_list用A来代替、__STL_VOLATILE* __my_free_list用B来代替。

那就是A是一个地址,B也是一个地址,A这个地址里面存放的数据也是一个地址,索性管这个被存放的地址叫做C,那么C这个地址所在存储区存放的是一个变量,*A就是指向这个变量;

而B这个地址里面存放的也是一个地址,这个地址里面存放的还是一个地址,这个地址不是别人,就是A,*B就等于C(C是个A那个地址里面所存放的数据)。

_Obj* __STL_VOLATILE* __my_free_list