作者在 2010-03-23 12:09:31 发布以下内容
int a = 5;
int* ptr = &a;
此时 ptr 指针里储存的是 a 的地址。即有
int* ptr2 = ptr ;
即将 a 的地址又赋值给了 ptr2 。如果是将 指针ptr 的地址赋给 指针ptr2 的话,应该是
int *ptr2 = &ptr ;
这样是错误的,错误提示 :cannot convert from 'int **' to 'int *' ,因为不能将 指针类型ptr 的地址
用同样的指针类型 ptr2 去保存。
如果保存指针类型的地址应该用
int** ptr3 = & ptr ;
ptr3 是一个指向指针的指针。此时
cout<<&ptr<<" "<<ptr<<" "<<*ptr3<<" "<<ptr3;
输出:
从这个输出就看以看出 ptr3 所起的作用了。就是通过 使用 ptr 间接的操作 a;例如
**ptr3 = 6;
cout<<a; //输出a
此时打印的 a 就变成了 6了 。