网上有很多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而想出的一个法子,若有不正确的地方还请各位看官给予点拨。
阅读(481) | 评论(0) | 转发(0) |