1.const Plemtype +变量名
用const限定符定义对象的时候,该对象是不可修改的,因此必须在定义时初始化,如:
const int a = 5;
const int b;//erro
2.定义const类型引用
const类型的引用必须指向const类型对象,如:
int a;
const int b;
const int &r_a = a; //erro
int &r_b = b; //erro 因为一般引用可以修改,规定普通引用不可以绑定const对象
const int &r_b = b; //ok
3.指向const对象的指针
(1)指向const对象的指针必须也具有const属性,如
const int a;
int *p = &a;//wrong
const int *p = &a;//ok,不能通过*p修改a的值,但是p可以指向其他int型对象,包括非const的,但不可通 过其改变该对象值
4.const指针
(1)int a = 0;
int *const p = &a;//p不可再指向其他对象,值不可修改,因此需要定义时初始化
(2)能否通过p改变a的值取决于a本身,此处可以。如果a为const对象,则不可以
5.指向const对象的const指针
const int a = 0;
const int *const p = &a;//既不可以修改a,也不可以修改p指向
Attention:
const变量为程序的局部变量,
原因是const变量可以定义在头文件中。而对于其他一般对象,定义应该在源文件中,继而在头文件使用extern声明。当const对象定义在file1.c中,可通过指定其为extern,然后在其他文件访问。如:
//file1.cpp
const int a = 10;
//file2.cpp
extern const int a;
for(int i = i;i<a;i++)
{……}