很多电影里都有这样的情节:某人得到一大笔宝藏后,绘制了一张藏宝图,为争夺这张藏宝图,引发了一系列故事。从这个老套桥段里,可以总结出一些隐含的东西:
1. 为什么要有藏宝图?因为宝藏体积重量大,不方便随身携带;而藏宝图轻巧可携带。
2. 得到藏宝图,基本就能得到宝藏。所以藏宝图≈宝藏。
3. 藏宝图只是一张纸,做为载体的纸一文不值。它的价值完全体现在纸上所画的图。
4. 藏宝图是一张纸,但一张白纸却不是藏宝图,必须画有宝藏的位置才行。
通过藏宝图代替宝藏,这种间接方式有很多好处,于是在软件开发中也发明了类似手段,即指针。指针相当于藏宝图,提供间接访问目标内存的手段,宝藏就是指针所指的内存块。无论谁得到藏宝图后第一件事必然是按图索骥去寻找宝藏。有了指针也要马上想到:这张指针藏宝图指向的宝藏在哪里?这应该形成条件反射。比如:
int *pA;
int A=0x1000;
pA = &A;
printf(“val A=%d\n”, *pA);
pA为指针变量,其值为&A,假设为0x2000,这个值代表某内存单元的地址,也常表述为“指针pA指向地址为0x2000的内存”,而*pA<