常量的值是不可以被修改的,但是由于指针的使用,使得常量值的改变成为可能。它所修改的常量也只是由const定义,通过取地址运算符指向该常量得到内存,然后改变该内存的内容,实现常量值的强制修改。
本例以整形常量为例,定义整形指针point及整形数据changliang(由const定义的常量)。将point指向changliang所在的内存,通过改变内存的内容,实现强制性的改变常量值。
代码如下:
#include<iostream> #include<string> using namespace std; int main() { int *point; const int changliang=12; point=(int*)&changliang; *point=32; cout<<"changliang值:"<<changliang<<endl; cout<<"point指向changliang内存的值:"<<*point<<endl; return 0; }
运行结果:
注意:由运行结果可以看出,强制改变常量的值并没有真正实现。它只是改变了changling所占内存的值,并没有改变changling的值
原文地址:https://www.cnblogs.com/0405mxh/p/10125210.html
时间: 2024-10-13 04:04:01