Chinaunix首页 | 论坛 | 博客
  • 博客访问: 134988
  • 博文数量: 46
  • 博客积分: 126
  • 博客等级: 民兵
  • 技术积分: 186
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-12 17:57
文章分类

全部博文(46)

文章存档

2016年(2)

2015年(2)

2014年(17)

2013年(8)

2012年(12)

2011年(5)

分类: C/C++

2014-06-08 13:09:03

网上有很多c++用法总结,说的很全面,故本文只简述自己对const修饰变量的一点理解。
先说三个例子吧:
(1) const char    *p;
(2) char * const  p;
(3) const char *  const p;

为了方便理解,我们可以吧变量类型去掉,于是便变为:
(4) const     *p;
(5)  * const  p;
(6) const  *  const p;


对于(4), const修饰的是*p,即*p是不可修改的
对于(5), const修饰的是p,  即p是不可修改的
对于 (6) , 有两个const, 一个修饰*p, 一个修饰 p,即*p和p都是不可修改的

当然const修饰变量有很多别的写法,比如:
(7)  char const *p;
(8)  const (char *)p;
(9)   (char *) const p;
(10) const (char) *p;
(11) (char) const *p;
我们把变量去掉(含括号时将括号中的一块去掉),变为:
(12)  const *p;
(13)  const  p;
(14)  const  p;
(15)  const  *p;
(16)  const  *p;

这样一来,const修饰哪个就一目了然了。

上述仅为本人为了理解const而想出的一个法子,若有不正确的地方还请各位看官给予点拨。

阅读(477) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~