此文编写参考狄泰软件学院唐佐林老师的视频课程,如有错误之处,欢迎指正。
一、经过const修饰后,什么时候为只读变量,什么时候为常量?
1、const在从c语言中的特性
其中有一点在c++中是不成立的,也就是在c++中可以通过const定义真正意义的常量。
2、const常量的判别标准
(1)只有字面量初始化的const常量才能进入符号表中
(2)使用其他变量初始化的const常量本质上是只读变量
(3)被volatile修饰的const常量不会进入符号表中
下面通过例程来分析。
#include<iostream>
using namespace std;
int main()
{
const int a=1;//真正的常量,进入了符号表
const int& b=a;//只读变量
//b=2;//因为有只读属性,因此不能够直接写值
int &c=const_cast<int&>(b);//去除只读属性
c=2;
cout<<"a="<<a<<endl;//a=1,从符号表中读值
cout<<"b="<<b<<endl;//b=2,从空间中读值
cout<<"c="<<c<<endl;//c=2,从空间中读值
//三者都是同一个地址
cout<<"&a="