指针的理解

作者在 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了 。
C/C++ | 阅读 576 次
文章评论,共0条
游客请输入验证码
浏览576次
文章分类
文章归档
最新评论