Const常量真的不能改变了么?
在介绍const用法的时候,老师们都说"由const修饰的变量的数值是不能修改的", 不过世间的事总不是那么绝对的!下面就介绍几种修改const变量的方法!
我们声明一个const类型的变量,可以用如下代码:
const int a = 2;
直接对a进行赋值是不行的,如果我们一定要想改变a的值怎么办?在C,C++中指针真是个好东西,它可以为我们巧妙的解决很多问题。我们使用指针用如下代码即可达到修改a值的目的!
const int a = 10;
int *p = (int*)&a;
*p = 20;
cout << *p << endl;
如果是常量指针呢?
int array[10]={0};
const int *pointer=array;
int *pointer1=(int*)pointer;
pointer1[0]=1;
cout << array[0] << endl;
如果是指针常量呢:它的声明形式为:int* const pointer; 常指针在编程的过程中它的指向不能改变.
因此,常指针在声明的时侯一定要给它赋初值.否则,就不能直接给它赋值.
但是,如果一定要给它赋上一定的值,是可以的.如下例子:
#include<stdio.h>
int main()
{
int a=2;
int* const p;
int **p1=(int**)&p;
*p1=&a;
printf("%d",*p);
return 0;
}