鲜の每日C
C++之const的用法
最近学习c++看到const部分,const在c中就是一个常用的关键字,在这里总结了c++的const用法,写了点小心得
Const关键字用法:
const定义:const限定类型修饰符,修饰一个对象,被const修饰的对象为只读的,不可以被改变。
const用法:
1.修饰常量
最常见用法
const int number = 0; //这种写法是正确的
number是一个常量,他被const修饰后就不能修改,所以定义的时候必须初始化,否则编译会出错。
const int number1 ;//这种写法是错误的,没有初始化一个const对象的常量
2.修饰指针
常量在被const修饰后就不能被修改,但是我们可以通过修改指向这个常量的指针去修改这个常量:
const int a 和int const a的区别
//【1】int const a
int errNumb = 0;
int *const curErr = &errNumb;//int *const curErr 是指向int类型的const指针
//cuErr的地址不能变但是指向的值可以改变
//【2】const int a
const double *pc = 0; //const
double val = 3.0;
const double minWage = 9.60;
pc = &minWage;
pc = &val;
cout<<*pc<<endl;
pc是指向 double 类型的 被定义成 const 的对象的指针,我们可以重新赋值,让pc指向不同的对象,但是不能改变pc指向的对象的具体数值
//【3】const int *const a
const double pi = 3.14159;
const double *const pi_ptr = π//pi_ptr 是指向被定义为 const 的 double 类型对象的 const 指针
//pi_ptr的值和指向的对象都不能改变
总结:
const对象的地址,只能赋值给指向const对象的指针
指向const对象的指针可以被赋值给一个非const对象的地址