做题前先复习一下指针:
参考W3C里面的C++指针章节,里面说到:
“每个变量都有一个内存位置,每个内存位置都定义了可使用连字符&运算符访问的地址,它表示了内存中的一个地址。
指针是一个变量,它的值是另一个变量的地址,即内存位置的直接地址。”
我对这句话的理解是:
定义两个变量,张三和李四(实际变量),分别赋值1和2,然后有一栋楼(内存),张三住4楼401房,李四住6楼602房(内存中的位置)。
再定义两个变量,地址牌A和地址牌B(指针变量),A中存储张三的地址。B中存储李四的地址。即A中的值是一个地址“4楼401房”,B中是“6楼602房”。这就是“指针是一个变量,它的值是另一个变量的地址”。
这样理解的话对指针就有一个初步的了解,不至于太抽象。
C++使用指针
C++中使用指针会频繁的进行如下操作:
定义一个指针变量,把(实际)变量的地址赋值给指针(变量)、访问指针变量中可用地址的值。
int zhangsan=1; //定义一个实际变量zhangsan(张三),并赋值。
int *dzp=NULL; //定义一个指针变量,dzp(地址牌),并初始化。
dzp=&zhangsan; //存储“张三”的地址到“地址牌”
cout<<dzp<