1. 程式人生 > >const類型變量的詳細解讀

const類型變量的詳細解讀

指針 地址 不可 錯誤 div log 變量 tro 類型

const類型變量
--------------------------------------
int i;
const int *p;
--------------------------------------
int i;
int *const p = &i;
--------------------------------------
int i;
const int *const p = &i;

三者有何區別呢?
--------------------------------------
1. const int *p;
const用來修飾int *, *p的內容不可變。
比如你定義了const int *p = 5;
那麽你再對p的內容賦值就是不合法的:*p = 6; //錯誤

2. int *const p = &i;
const用來修飾p, 指針p的地址不可變。

int i = 0;
int j;
int *const p = &i;
p = &j;   //錯誤
i = 1;    //正確

3.const int *const p = &i;
限制了指針指向的內容和指向的地址。

const類型變量的詳細解讀