了解C語言中的const

2021-10-19 04:01:02 字數 2040 閱讀 1499

限定符const可以應用於任何變數的宣告,以指定其值不會更改(這取決於const變數儲存的位置,我們可以使用指標更改const變數的值)。

1. 指向變數的指標

int

*ptr;

我們可以更改ptr的值,也可以更改ptr指向物件的值。指標和指標所指向的值都儲存在讀寫區域中。請參見以下**片段:

#include

intmain

(void

)

輸出:

*ptr:

10*ptr:

20*ptr:

100

2. 指向常量的指標

指向常量的指標可以通過以下兩種方式宣告:

const

int*ptr;

或者

int

const

*ptr;

我們可以更改指標指向任何其他整數變數,但不能更改使用指標ptr指向的物件(實體)的值。指標儲存在讀寫區(本例中為堆疊)。指向的物件可能在唯讀區或讀寫區。讓我們看看下面的例子:

#include

intmain

(void

)

輸出:

error: assignment of read-only location 『*ptr』
下面是另乙個例子,變數 i 本身是常量。

#include

intmain

(void

)

輸出:

error: assignment of read-only location 『*ptr』
c ++中不允許使用降級資格,並且可能在c語言中引起警告。以下是降級資格的另乙個示例:

#include

intmain

(void

)// reference:

//

// more interesting stuff on c/c++ @

3. 指向變數的常量指標
int

*const ptr;

上面的宣告是乙個指向整數變數的常量指標,這意味著我們可以更改指標指向的物件的值,但不能更改指標指向另乙個變數。

#include

intmain

(void

)

輸出:

error: assignment of read-only variable 『ptr』
4. 指向常量的常量指標
const

int*

const ptr;

上面的宣告是指向常量變數的常量指標,這意味著我們不能更改指標指向的值,也不能將指標指向其他變數。讓我們舉個例子看看:

#include

intmain

(void

)

輸出:

error: assignment of read-only variable 『ptr』

error: assignment of read-only location 『*ptr』

參考文件

[1]narendra kangralkar.const qualifier in c[eb/ol].

[2]karllen.c++ const 關鍵字小結[eb/ol].

(const 與 * 號的位置,牢記「左定值,右定向」)

[3]cppreference.com.const type qualifier[eb/ol].

(const在結構體中的應用,可以參考此文)

[4]biancheng.net.c語言const的用法詳解,c語言常量定義詳解[eb/ol].

(const在函式形參中的應用,可以參考此文)

C語言中的const

c語言的中的const,代表的含義是 不可改變的變數 或者可以成為 偽常量 c 中 const,被稱為 乙個有型別描述的常量 const int liv num 10 liv num 18 error 因為liv num 被const修飾不可被直接賦值 那麼,我為什麼說是 偽常量 我們知道在c中給變...

C語言中的const

最近在複習c語言,就來說說關於我以前才開始學c語言很迷糊的乙個知識點 const關鍵字 const關鍵字是用來定義唯讀變數的,說 const 定義的是變數,但又相當於常量 說它定義的是常量,但又有變數的屬性,所以可以叫常變數。用 const 定義常變數的方法很簡單,就是在定義變數時前面加 const...

C語言中的CONST使用

c中的const使用 const是乙個c語言的關鍵字,它限定乙個變數不允許被改變。使用const在一定程度上可以提高程式的安全性和可靠性。const的使用是c語言中乙個比較微妙的地方,請看下面幾個問題。問題 const變數 和 常量 為什麼下面的例子在使用乙個const變數來初始化陣列,ansi c...