指针与const
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://298452.blog.51cto.com/288452/55192 |
int pt=10;
const int *p=&pt; *p为一个const量,p指向一个const int,不能改变p所指向的值,即*p不能被修改,但是可以改变p的指向。如:*p=1000;(invalid) pt=1000;(valid),此时,p将指向存放1000的地址了,通过变量pt改变了*p的值。
int * const pp=&pt; pp为一个const量,只能指向pt,不能改变pp的值,但是可以改变pp指向的值*pp,如:*pp=1000;(valid) pp=&pc;(invalid)
const int* const ppp=&pt; ppp为一个const量,*ppp也是一个const量,ppp只能指向pt,也不能通过ppp所指向的值改变int的值,也不能改变ppp
如果数据本身不是指针,那么可以将const数据或者非const数据的地址赋给指向const的指针,但是,只能将非const数据的地址赋给非const的指针,不能将const数据地址赋给非const的指针,因为可以通过该指针更改数据,从而产生冲突。
通常我们利用指向const的指针来保护数据,可以避免由于无意间修改数据,能使函数处理处理const和非const实参,否则只能处理非const数据。 本文出自 “lion_pc” 博客,请务必保留此出处http://298452.blog.51cto.com/288452/55192 本文出自 51CTO.COM技术博客 |


lion-pc
博客统计信息
热门文章
最新评论
友情链接