Const常量真的不能改變了麼?

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章