記錄自已學習之關鍵字const

2021-07-31 17:52:58 字數 1147 閱讀 7948

最近應該會恢復正常的生活節奏,所以更新部落格可以定時的更新,因為自已的學習可不能落下。這次部落格就來講一下const這個關鍵字

const主要用於在定義的時候給出,用於提醒系統這個變數是唯讀變數,防止這個變數被再次修改。下面我就來介紹它的用途。

(1)顯示給出定義,用於提醒程式設計師這個值不被修改,給系統提醒這個變數定義為唯讀。

比如const int a = 9;如果還有其它的程式設計師不知道這個是可修改的值,最後給出了另外的賦值 a = 9;這時候系統就能給出錯誤的資訊,提示這個為不可修改的值,你試圖修改。

(2)當其用於函式的定義之中,被其定義的變數就成為了輸入型引數。

比如就是void func(const *str);這條式子就是傳遞乙個輸入型引數,表示這個引數在這個函式中只是唯讀,而不是可修改,其實說起來跟上面的一樣,也就是提醒系統在這個函式裡面這個引數就是乙個唯讀引數,當然還有返回值可以修飾為唯讀引數。

(3)當其用於修飾指標的時候,其定義的型別根據位置而定。

這個相信大家會經常的混淆,因為我在學習的過程中也會經常的搞錯,所以我在這裡特意的提了一下。首先第乙個就是const int *p;(int const *p)這兩個式子就是把p宣告為乙個指向唯讀值的指標,也就是說p指向乙個唯讀變數。第二個式子就是int * const p;這個式子就是把指標p宣告為乙個唯讀指標,它是指向乙個普通變數,也就是它指向的變數可以變化,而自已卻是不可改變的。第三個式子const int * const p;這個變數就是把p和p指向的變數都宣告為不可改變的量,說明白點這個式子就是上兩個式子的組合。

我把我的方法說出來,我記第一二式子就是看const在*號的哪一邊。在*號的左邊就是p指向不可改變的量,在右邊就是p是個不可改變的指標。

(4)const與define定義常量

const宣告的變數就是在系統中只為它分配一次記憶體,而define定義的變數可以多次分配記憶體。

#define max 9

const int max = 9;

//此時並沒有分配記憶體

int min0 = max;

//此時才分配了記憶體

int min1 = max;

//編譯時分配了記憶體

int min2 = max;

//這是已經不分配記憶體了

int min3 = max;

//編譯時分配了記憶體

C 之const關鍵字

函式與const 類與const 使用const關鍵字修飾的常量是唯讀的,在程式執行時不能更改。const關鍵字可以用在型別名前,也可以用在型別說明符後。常量 const double rate 0.069 const在型別名之前 const int amount 10 string const n...

C 關鍵字之const

我只要一聽到被面試者說 const意味著常數 不是常數,可以是變數,只是你不能修改它 我就知道我正在和乙個業餘者打交道。去年dan saks已經在他的文章裡完全概括了const的所有用法,因此esp 譯者 embedded systems programming 的每一位讀者應該非常熟悉const能...

C語言關鍵字之const

const關鍵字是嵌入式程式設計師必須熟悉的。因為它的使用可以增加程式的健壯性,並且使讀者更好地理解程式。它所修飾的變數被叫做 唯讀變數 注意 唯讀變數 常量 千萬不要說被const所修飾的變數就是常量!那只能說明你對const還不太理解!下面就讓我們來分析一下const。首先看以下定義 const...