首先说一下在C中常用#define预定义符来定义不能被修改的数,预定义是在预处理阶段存在的,目的是为编译单元提供一个值。预处理器仅仅是对预定义的数进行了替换,并不会存在类型的检查,所以在C++中提出用Const来完全替代#define
const的主要用法
const主要是为了程序的健壮型,减少程序出错
1.const 用来定义常量
int const i =500;//定义了一个常量i并赋值为500
const int i = 500;//效果同上
2.const 用来定义指针
int const * i = &p; //定义了一个指向整形的指针且指向的内容不能修改,不能通过指针的方式修改变量。但是可以可以改变指向的内容例如 int const q =10 ,i =&q。
int* const i =&p; //常指针,不能进行移位操作,即指针指向的位置不能改变。但可以通过指针对变量进行赋值例如:*i =3 等价于 p=3;
3 const 用来定义数组
const int num[] ={1,2,3,4,5,6,7,8,9,0};//定义了一个常量数组,该数组里面的值不能够被修改。常用来保存一些系统参数
4 const 用来修饰函数的输入参数和输出
void minus(int const i,int const j);//这种定义方式的意义在于在函数体中不能修改传入的i,j的数值
const int minus(void);//这种定义方式的意义是该函数的返回值不能够改变,改变会出现错误