关键字const
关键字const
const含义:只要一个变量前用const来修饰,就意味着该变量里的数据只能被访问,而不能被修改,也就是意味着“只读”(readonly)。
const规则: const在谁后面谁就不可以修改,const在最前面则将其后移一位;const修饰一个变量时,一定要给这个变量初始化,若不初始化,在后面也不能初始化。
const的作用:
1:使编译器保护那些不希望被修改的参数,防止无意代码的修改,减少bug;
2:增强代码的可读性,给读代码的人传递有用的信息,声明一个参数,是为了告诉用户这个参数的应用目的。
const的用法
const修饰指针变量
左定值,右定向
1、没有const修饰时
void test1()
{
int n = 10;
int m = 20;
int* p = &n;
*p = 20;//ok
p = &m; //ok
}
程序正常运行:
当没有const修饰时,指针变量本身和指针指向的内容都可以修改。
2、const放在*的左边
void test2()
{
int n = 10;
int m = 20;
const int* p = &n;
*p = 20;//error
p = &m; //ok
}
当const放在*的左边,修饰的时指针指向的内容,保证指针指向的内容不能通过指针来改变。但是指针变量本身的内容可以改变。
3、const放在*右边
void test3()
{
int n = 10;
int m = 20;
int* const p = &n;
*p = 20; //ok
p = &m; //error
}
当const放在*右边,修饰的时指针变量本身,保证了指针变量的内容不能修改,但是指针指向的聂荣,可以通过指针改变。
4、
void test4()
{
int n = 10;
int m = 20;
const int* const p = &n;
*p = 20; //error
p = &m; //error
}
const如果放在*两边,那么指针变量本身和指针指向的内容都不能修改