const限定詞使用

2022-09-04 14:54:33 字數 1280 閱讀 5321

可以⽤const關鍵字建立不允許修改的陣列:

const int days1[12] = ;

1.在指標和形參宣告中使⽤const

宣告普通變數和陣列時使⽤ const 關鍵字很簡單。指標則複雜⼀

些,因為要區分是限定指標本⾝為const 還是限定指標指向的值為

const。下⾯的宣告:

const float * pf; /* pf 指向⼀個float型別的const值 */

建立了 pf 指向的值不能被改變,⽽ pt 本⾝的值可以改變。例如,

可以設定該指標指向其他 const值。相⽐之下,下⾯的宣告:

float * const pt; /* pt 是⼀個const指標 */

建立的指標pt本⾝的值不能更改。pt必須指向同⼀個位址,但是它

所指向的值可以改變。下⾯的宣告:

const float * const ptr;

表明ptr既不能指向別處,它所指向的值也不能改變。

還可以把const放在第3個位置:

float const * pfc; // 與const float * pfc;相同

如注釋所⽰,把const放在型別名之後、*之前,說明該指標不能⽤

於改變它所指向的值。簡⽽⾔之, const放在*左側任意位置,限定了

指標指向的資料不能改變;const放在*的右側,限定了指標本⾝不能改

變。const 關鍵字的常⻅⽤法是宣告為函式形參的指標。例如,假設有

⼀個函式要調⽤ display()顯⽰⼀個陣列的內容。要把陣列名作為實際

引數傳遞給該函式,但是陣列名是⼀個位址。該函式可能會更改主調

函式中的資料,但是下⾯的原型保證了資料不會被更改:

void display(const int array, int limit);

在函式原型和函式頭,形參宣告const int array與const int * array

相同,所以該宣告表明不能更改array指向的資料。

ansi c庫遵循這種做法。如果⼀個指標僅⽤於給函式訪問值,應

將其宣告為⼀個指向const限定型別的指標。如果要⽤指標更改主調函

數中的資料,就不使⽤const關鍵字。例如,ansi c中的strcat()原型如

下:char *strcat(char * restrict s1, const char * restrict s2);

回憶⼀下,strcat()函式在第1個字串的末尾新增第2個字串的

副本。這更改了第1個字串,但是未更改第1個字串。上⾯的宣告

體現了這⼀點。

英語限定詞

冠詞 article 定冠詞 definite article 不定冠詞 indefinite article 零冠詞 zero article 形容詞性的物主代詞限定詞 possessive pronoun determiner my,your,his,her,our,their,its.名詞屬格...

程式語言 const限定詞的用法

物件導向是c 的重要特性.但是c 在c的基礎上新增加的幾點優化也是很耀眼的 就const直接可以取代c中的 define 以下幾點很重要,學不好後果也也很嚴重 const 1.限定符宣告變數只能被讀 const int i 5 int j 0 i j 非法,導致編譯錯誤 j i 合法 2.必須初始化...

C語言const限定詞基本用法

它限定乙個變數不允許被改變,產生靜態作用。使用const在一定程度上可以提高程式的安全性和可靠性。另外,在 別人 的時候,清晰理解const所起的作用,對理解對方的程式也有一定幫助。像這種 hello 字串是唯讀的,操作其記憶體是不允許的。char str hello str 2 x printf ...