const 修飾的是誰

2021-07-16 10:14:56 字數 648 閱讀 8652

const 修飾乙個量,那個量會被放到乙個常量表裡,無論如何,值都不會被改變了

const 修飾指標:

int a = 3;

int *p = &a;

const int *p //指標所指向的記憶體空間無法被改變,即a的值無法被改變

int * const p //指標的值無法被改變,即指標只能指向某乙個特定的記憶體空間,這裡只能是 p = &a

const int * const p//兩者都無法被改變

下面是const放在函式名後面的一種情況

這裡報錯了,說明const修飾的是 this->a 和 this->b (this指標所指向的記憶體空間)

那麼,又有乙個新的問題來了,const僅僅是限定了this所指向的記憶體空間嗎,那麼,this的值呢,能不能被修改?

下面來做這個實驗

那麼,事實是這樣的,在設計c++編譯器時,這個this指標的值已經被限定了,它已經是個常量了

C const修飾的是誰?

實驗 如下 class test void var int a,int b const const修飾的this指標。var const test this,int a,int b private int a int b int main 說明 上面的 this a 100 this b 188 是...

const修飾的變數

const定義的常量不能直接被修改,只能間接被修改,如,通過指標。int main const int a 20 int p 10 指標變數指向的是a的位址,通過給指標變數p賦值來改變a中的值 printf d n a return 0 結果 10 在c語言中,當const修飾的識別符號,這個識別符...

const修飾的變數

1.const char p1 2.char const p2 以上兩種情況,到底哪種是指標不能變,哪種是變數不能變呢?下面做乙個記錄,防止以後出錯 記住一句口訣 左定值,右定向 如果const在 左邊,那麼定義的變數值不能改變,但指標是可以改變的 如果const在 右邊,方向即指標不能變,也就是這...