第二十章 指针 二 为指针分配和释放空间 20
1 理解指针的两种“改变” 普通变量(非指针,简单类型变量)只能改变值: 1) int a = 100; 2)
3) a = 200; 第 1 行代码,声明 int 类型变量 a,并且初始化 a 的值为100
到第 3 行代码,变量 a 的值被改变成 200
对于非指针的简单变量,能被程序改变的,只有这一种
而指针变量,似乎有两种改变
1 改变指针的值 这一点和普通变量一致
但要特别注意,“改变指针的值”引起的结果是什么
其实就是“改变指针的指向”
因为,指针的值是某个变量的地址
假如指针P 原来的值是 A 变量的地址,现在改为B 变量的地址
我们称为:“P 由指向 A改为指向 B”
这就是指针的第一种改变
以下是示例代码: int* P; int A,B; 1) P = &A; 2)
3) P = &B; 1) 行代码中,P 的值为 &A,即P 指向变量A
到3)行代码中,P 的值变为&B,即改为指向变量B
下面讲:指针的第二种改变
通过指针,改变指针所指的变量的值
2 改变指针所指的变量的值 复习前一章,我们知道通过 * (地址解析符),可以得到、或改变指针所指的变量的值
int* P; int A = 100; P = &A; *P = 200; cout