關於const的用法

2021-09-26 13:31:40 字數 1154 閱讀 9151

1.const int *p=「hello」;

這個意思就是這個指標變數p指向的內容不能改變,但是可以改變讓p指向其他的位址。

const char *p=「hello」;

p=「ok」;

printf("%s",p);

所以這個的執行結果就是ok,如果稍加修改

const char *p=「hello」;

p[0]=『o』;

printf("%s",p);

這樣編譯的時候就會出現問題。

2.char *const p=「hello」;

這個意思就相反,指標指向的內容可以改變,但是不能改變指標的指向。

char *const p=「hello」;

p[1]=『w』;

printf("%s",p);

會出現下述的結果

但是這樣也是錯誤的,原因是這裡是字串和字元在windows下是存在常量儲存區也是不可改寫的所以我們修改一下程式

int n=3;

int * const p=&n;

*p=5;

printf("%d",*p);

那這樣執行的結果就是5,完全正確,但是

int n=3,m=3;

int *const p=&n;

p=&m;

printf("%d",*p);

這樣就會出現問題。

還需要注意一點就是,我們這樣寫也是錯誤的,這是初學者容易犯的錯誤。

int n=3;

int * const p;

p=&n;

printf("%d",*p);

我們要在這個常量指標定義的時候就賦值。

為了方便記憶我們可以這樣理解

const int *p;

因為p是乙個指向int型資料的指標,如果我們const int就是把這個int資料變成常量,所以p指向的資料當然是不可修改的啦。

而int *const p;

就是把指標變成乙個常量,裡面存的位址當然不可以改變,但是指向的另乙個值並沒有定義為常量,自然是可以改變的。

當然啦,

const int *const p;

這樣寫也是完全正確的啦!

關於const的用法

在生活或工作中,對於一些檔案 程式或資料,需要設定對它們的讀寫許可權。在必要的時候,如果限定一些資料只具有 讀 的許可權,而不能對它們進行賦值或修改,這時,我們需要使用 const 對資料進行修飾。在對const進行解釋之前,先引入兩個名詞 左值 右值 左值 放在 賦值 符號左邊的就是左值。其他情況...

關於const用法的總結

include if 0 測試const 變數 int main endif if 0 測試指標常量 const int a 二級指標修改 一級指標的值 void test const int a void test02 int a 二級指標,把實參的位址,扔過來.void test02 const...

關於c 中const的用法

1.當然最常用的還是作為常量。1 const int p的用法,表示指向的值得型別不變還是int型,但p的值可以變,可以這樣理解 自以為指向const的指標 可以將非const的物件賦值給他例如可以這樣 int i 3 int j 4 const int p p i cout p p j cout ...