作用:
1、为给读你代码的人传达非常有用的信息,声明一个参数为常量是为了明确这个参数的应用目的;
2、通过给优化器一些附加信息,使关键字const也许能产生更紧凑的代码;
3、合理使用关键字const可以使编译器很自然的保护那些不希望被修改的参数,防止无意的代码修改,可以减少bug的出现。
应用举例:
1、定义常量:
const int MAX_NUM = 100; //定义之后,MAX_NUM的值不再可以被改变,与#define类似,但有区别
2、修饰指针
const int *p1; //指向整型常量的指针,它指向的值不能被改变
int const *p2; //指向整型的常量指针,它不能再指向别的变量,但它指向的变量可以被改变
const int const * p3; //指向整型常量的常量指针,它既不能再指向别的变量,指向的变量也不能被改变
3、修饰函数形参
修饰形参,可防止在函数内部修改指针指向的数据,提高数据操作时的安全性
4、注意const和非const类型转换
当一个指针变量 str1 被 const 限制时,并且类似const char *str1这种形式,说明指针指向的数据不能被修改;如果将 str1 赋值给另外一个未被 const 修饰的指针变量 str2,就有可能发生危险。因为通过 str1 不能修改数据,而赋值后通过 str2 能够修改数据了,意义发生了转变,所以编译器不提倡这种行为,会给出错误或警告。
- 为给读你代码的人传达非常有用的信息,声明一个参数为常量是为了告诉用户这个参数的应用目 的;
- 通过给优化器一些附加信息,使关键字const也许能产生更紧凑的代码;
- 合理使用关键字const可以使编译器很自然的保护那些不希望被修改的参数,防止无意的代码修改,可以减少bug的出现;