定义指针变量时在变量类型和变量名中间加个 *, 指针变量的值本身是一个地址,在使用指针变量时,如果,在指针变量前加一个*表示取指针变量的值表示的地址中的内容,如果不加*则表示取指针变量的值,就是指针变量存的地址。
2015-07-04
p;指针指向的变量地址
*p;指针指向的变量值
&p;指针自己所在的地址
既然一个指针保存的是变量的地址,对32位CPU,地址有4个字节,就需要4个内存单元来存储,所以每次++p在内存里都是跳4格。
*p;指针指向的变量值
&p;指针自己所在的地址
既然一个指针保存的是变量的地址,对32位CPU,地址有4个字节,就需要4个内存单元来存储,所以每次++p在内存里都是跳4格。
2015-06-25
C是靠传入变量地址的方法来实现对变量的全局操作:void f(int *a); 使用:f(&a);
C++有个引用型就方便多了:
传入普通变量:
void f(int &a) {++a;};
f(a); // a自增1
传入指针:
void f(int *&p) {++p;};
f(p); // 此时,指针p的值自增1
C++有个引用型就方便多了:
传入普通变量:
void f(int &a) {++a;};
f(a); // a自增1
传入指针:
void f(int *&p) {++p;};
f(p); // 此时,指针p的值自增1
2015-06-25