Posted on 2006-07-04 23:40
笨笨虎 阅读(125)
评论(0) 编辑 收藏 引用 所属分类:
C++基础
在c++中,const是一个不可或缺的非常有用的关键字,随处都可看见他的声影。可以从下面几个方面来看它的用法。
一 通常的用法:
通常的用法就是声明一个常量,在程序中不能被修改。声明时必须赋值。如:
const
int
ival
=
10
;
ival
=
ival
+
1
//
错误,不能被赋值。
二 const与指针
有两种方式把const用于指针:
1
让指针指向一个常量对象。
这种方式的主要意图是防止使用该指针来修改所指向的值。如下面的代码:
int
ival
=
10
;
const
int
*
ip
=
&
ival;
*
ip
+=
1
;
//
错误
ival
+=
1
;
//
正确
也就是说
*ip
是一个常量,当然就不能被修改。但
ival
没被
const
修饰,就可以被修改。这里的
ip
表示的是
ival
在内存中的地址,也是可以修改的。
还有一个问题就是,不能把
const
常量的地址赋值给常规指针。因为常规指针的值是可以被修改的,这样就会更改
const
常量的值,是编译器不允许的。
如下面
const
int
ival
=
10
;
int
*
ip
=
&
ival;
//
错误
但是,如果程序员非要这样用的话,也可用强制类型转换的
const_cast
。
将
const
常量的地址赋值给指向
const
的指针,这是可行的。因为两个值都是不允许修改的。
还有,一般不允许使用指向
const
的多级指针;不能把常量数组赋值给非常量指针,也就是说在函数中用非常量数组做参数时,不能把常量数组名赋值给它。
2.
将指针本身声明为常量。
int
ival
=
10
;
int
*
const
ip
=
&
ival;
这里的意思是变量ival的地址是不可更改的。
ip
++
;
//
错误
( 待续.........)