文章目录
文字常量和常变量
常量可以直观的理解为“值不可改变的量”。在C++中,常量分为文字常量和常变量
文字常量
文字常量又称为“符号常量”,经编译之后写在代码区,是不可寻址的。而常变量同其它变量一样被分配空间,是可以寻址的
文字常量包括数值常量、字符常量和符号常量,其特点就是编译后写在代码区,不可寻址,不可更改
程序中有些特殊的标识符或表达式由于满足文字常量的两个条件:不可寻址、不可改变,也可以将它们视为文字常量。它们分别是:静态数组名、枚举常量、全局(静态)变量首地址
常变量
如果一个常量在定义它的时候就给他赋初值,且此后它的值就不能被改变,那么这个变量就是常变量
常变量由普通变量前添加const关键字来定义
常变量的值在赋值后不能被改变并不是真的不能改变,而是对于高级语言语法上的限制,实际上常变量在运行时并不是存放在只读内存区,因此只要在程序运行时获取到变量的地址,即可对其进行修改
修改const变量的值
具体代码如下:
#include <iostream>
using namespace std;
void showValue(const int &val)
{
cout << val << endl;
}
int main()
{
const int val = 10;
int *ptr;
void *p = (void *)&val;
ptr = (int *)p;
(*ptr)++;
showValue(val);
return 0;
}
如上所示,只需获取val的地址,即可对其进行修改