指针常量&常量指针&迭代器指针 最简单的区分方法

直奔主题:

指针和 const 谁在前先读谁 ;
" * " 代表–地址," const "代表–内容;
谁在前面谁就不允许改变。

/*常量指针*/
//const 在前,定义为常量`在这里插入代码片`指针
int const *p1 = &b; 

/*指针常量*/
 //*在前,定义为指针常量
int *const p2 = &c;

面对迭代器,你也指定迭代器自身或自迭代器所指物不可被改变:

std::vector<int> vec;
const std::vector<int>::iterator iter = vec.begin(); 
// iter 的作用像 T* const(指针常量)
*iter = 10; // 可以改变 iter 所指物   
++iter;     // error! 因为 iter 是 const     

std::vector<int>::const_iterator cIter = vec.begin(); 
// cIter 的作用像 const T*(常量指针)
*cIter = 10; // error! 因为 *cIter 是 const           
++cIter;     // 可以改变 cIter       
发布了2 篇原创文章 · 获赞 0 · 访问量 14
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览