const是constant的简写,只要一个变量前面用const来修饰,就意味着该变量里的数据可以被访问,不能被修改。也就是说const意味着“只读”readonly
规则:const离谁近,谁就不能被修改。
关于const使用时的两种常见情况:
1.定义常量:
① const修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修饰的int类型的变量值value是不可修改的。
int const a = value;
const int a = value;
②将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义.
extend const int a = value;
2.定义指针:
①指针本身是常量不可变,指针所指向的内容可以改变。
char* const ptr;
②指针所指向的内容是常量不可变,指针本身可以改变。
const char *ptr;
③两者都不可变
const char* const ptr;
区别方法,沿着*号划一条线:
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。