c++中的const 有点类似于c里的宏定义#define,但是似乎是在宏定义基础上的代码优化,具体我解释不清,下面主要提到的是
 
const 在c++中的3中基本用法:
 
1.指向常量的指针
 
例如:const char*  pc=“sada";
 
含义:声明一个名为pc的指针变量,它指向一个字符型常量,初始化pc为指向字符串"sada";
 
由于指针指向的是一个字符型常量,const不允许改变指针指向的字符型常量,故
 
例如
 
p[2]='s';是错误的,但是却可以改变pc所指的地址
 
pc=“asdas”;
 
正确;
 
2.对于和指向常量的指针截然不同的是常指针,
 
常指针具体在例子中体现,
 
例如:char* const pc="asd";
 
这种定义方式是错误的;
 
经过实际操作可知,必须定义变量,如果是常量将无法进行修改。
 
会报warning
 
因为此时的pc是常量,
 
应采用此种定义方式
 
char a[]="sadd";
 
char* const pc=a;
 
含义
 
把指针变量所指的地址,而不是它指向的对象声明为常量。
 
可以改变地址中的数据,但是不能改变指针指向的地址
 
即pc[2]='x';正确
 
pc=”sdaasdas";错误;
 
3.是前两者的结合版
 
指向常量的常指针;
 
const char* const pc="ada"
 
这种用法是地址中的数据及地址都不能修改;
 
更多详细解析请参考  https://blog.csdn.net/tham_/article/details/45846647