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;
}