字面常量与常变量
1.字面常量经编译后数据储存在代码区,且不可寻址
2.常变量如同变量一般被分配内存,被放在数据区,可寻址
3.可被视为有字面常量特性(即值不可变且不可寻址)的特殊表达式:静态数组名,枚举常量,静态变量首地址
4.常变量由const关键字加变量名来申明。必须在定义常变量时就为其赋值。因为其可寻址性,可以使用特殊方法改变常变量的值。
#include <iostream>
using namespace std;
void showValue(const int& j)
{
cout<<j<<endl;
}
int main()
{
const int i = 1;
int *ip;
void *vp;
vp = (void*)&i;//将i的地址(即int型的指针)强制转换为空类型的指针并将指针变量的内容(即i的地址)赋给另一个空类型指针
ip = (int*)vp;//将空类型的指针强制转换为int型指针,并将其赋给另一个int型指针
(*ip)++;//(*ip)实质为i这个常变量,将其加一
return 0;
}