C 如何用好CONST關鍵字?

2021-10-19 12:56:50 字數 666 閱讀 9661

(1) 修飾變數、陣列

(2)  修飾函式引數

(3) 修飾指標

表示此變數為常量,功能同 #define(但巨集定義更優)

const關鍵字修飾函式引數,對引數起限定作用,防止其在函式內部被修改。所限定的函式引數可以是普通變數,也可以是指標變數。舉例如下:

void fun1(const int i)

void fun2(const int *p)

c語言中const修飾指標要特別注意,共有兩種形式,一種是用來限定指向空間的值不能修改;另一種是限定指標不可更改。舉例說明如下:

int i = 5;

int j = 6;

int k = 7;

const int * p1 = &i; //定義1

int * const p2 =&j; //定義2

上面定義了兩個指標p1和p2。

在定義1中const限定的是*p1,即其指向空間的值不可改變,若改變其指向空間的值如*p1=20,則程式會報錯;但p1的值是可以改變的,對p1重新賦值如p1=&k是沒有任何問題的。

在定義2中const限定的是指標p2,若改變p2的值如p2=&k,程式將會報錯;但*p2,即其所指向空間的值可以改變,如*p2=80是沒有問題的,程式正常執行。

C語言關鍵字 Const

c中const的使用 雖然這聽起來很簡單,但實際上,const的使用也是c語言中乙個比較微妙的地方,微妙在何處呢?請看下面幾個問題。問題 const變數 常量 為什麼下面的例子在使用乙個const變數來初始化陣列,ansi c的編譯器會報告乙個錯誤呢?const int n 5 int a n 答案...

C中const關鍵字

const 用法 定義常量,修飾指標 函式的輸入引數和返回值,把定義或者修飾的變數屬性設為唯讀。本質上它只是在全域性資料段或者棧中定義的是乙個唯讀的常量,不是真正位於字串常量區。所以關鍵字const 並不能把變數變成真正的常量,事實上還是可以改變 const 定義的變數的值。const 的目的是為了...

C語言關鍵字const

const 是constant的縮寫,只要有變數前面用const修飾,就意味著該變數裡面的資料是readonly。const可以修飾基本型別,構造型別,指標,等。const int a 10 去掉int a 的值不變 int const a 10 去掉int a的值不變 const int a 10...