1、const 作用可以简单的理解为只读,即不能修改,const变量因为不能修改,必须要有初始化,否则会出错
example:
const int a = 0; //定义一个const型的int变量
a = 10; //错误,不允许向const修饰的对象赋值
const int b; //错误,必须初始化
2、const修饰的变量虽然不能修改,但是可以参与那些不改变自身内容的运算,例如算数运算和布尔运算,也可以对其它变量赋值
example:
const int b = 10;
int c = b; //正确
int d = b+10; //正确
c = b++; //错误,不能进行自加运算
if(b) //正确
{
d = b*(c+1); //正确
}
3、可以对非const型的变量定义一个const类型的引用,但是反之则不行。
记住,对非const型变量定义const型的引用之后,该变量的值不能通过该引用修改,但是可以通过其他方法,甚至别的引用修改
int a = 0;
const int &b = a; //正确
const int c = 100;
int &d = c; //错误
int &m = a; //正确
a = 10; //正确,a是非const型的
m = 100; //正确,m是a的非const型引用
b = 20; //错误,不允许通过b修改a
float f = 3.1415;
const int &e = f; //正确,会将f拷贝一份后强制转换成int型后赋给e
4、常量指针与指针常量:常量指针即指针指向的内容不可改变,但是指针的指向可以改变
指针常量即指针的指向不可以改变,但是指向的内容可以改变,下面举例说明
int a = 10;
int b = 20;
int const *p = &a;//常量指针
//int const *p 等价于 const int *p
int *const q = &b;//指针常量
int c = a+b;
p = &c; //正确
*p = 100; //错误,不可以通过常量指针修改变量
q = &c; //错误,不可以改变指针的指向
*q= 50; //正确,可以通过指针常量修改所指向的内容
526

被折叠的 条评论
为什么被折叠?



