很多人都说,C/C++的精髓就在于指针。本文力图简明扼要地介绍指针的本质。
事实上,指针的概念非常的简单,只是很多书籍,很多人都把它讲得太复杂。
(1)简单的指针
首先看一个简单的指针: double * p
一个double类型的变量,名字随意,比如是 double d ; d = 3.1415。我们知道,double 占用 8 个字节的内存,我们假设是第 271-278号内存,即,内存地址为271-278 , 现在有 double * p 指向 d , 那么, p 的值就是271 . *p 就是 d .
(2)复杂的指针
现在,有一个复杂的结构,struct T 类型的变量,即 struct T t ; 具体的结构我们不关心,只知道它的内存地址是 271-309 , 有一个 struct T * p 指向 t , 那么 p 的值就是 271 , *p 就是 t .
如果 struct T 的结构是:
struct T{
int a ;
double d ;
};
那么,t.a 等价于 p ->a , t.d 等价于 p -> d 。