C語言const限定詞基本用法

2021-08-10 22:14:37 字數 1824 閱讀 3145

它限定乙個變數不允許被改變,產生靜態作用。使用const在一定程度上可以提高程式的安全性和可靠性。另外,在**別人**的時候,清晰理解const所起的作用,對理解對方的程式也有一定幫助。

像這種"hello"字串是唯讀的,操作其記憶體是不允許的。

char *str = "hello";

str[2]='x';

printf("%s\n",str);

編譯通過,執行出錯。

要是加上const限定詞,下列**編譯時候就會有錯誤提醒,相當於編譯錯誤檢查。

const

char *str = "hello";

str[2]='x';

printf("%s\n",str);

const char *p和 char const *p :限定的是*p,p指向的內容不可變,p本身可變。

char * const p:限定的是p,p指向的內容可變,p本身不可變。

char str[6] = "hello";

char *p = str;

*p='x'; // 指向的內容可修改

*++p = 'y'; // 指標位置可修改

printf("%s\n",str);

輸出

xyllo
const char *pchar const *p一樣效果。

修改指標位置:正常

char str[6] = "hello";

const

char *p = str;

++p;

printf("%s\n",p);

輸出

ello
修改指向的內容:出錯

char str[6] = "hello";

const

char *p = str;

*p='x';

printf("%s\n",str);

編譯出錯:error: assignment of read-only location 『*p』

修改指標位置:錯誤

char

str[6] = "hello";

char * const p = str;

++p;

printf("%s\n",p);

編譯出錯:error: increment of read-only variable 『p』

修改指向的內容:正常

char str[6] = "hello";

char * const p = str;

*p='x';

printf("%s\n",str);

輸出

xello
char str[6] = "hello";

char

const * const p = str;

++p; // 編譯出錯

*p = 'x'; // 編譯出錯

printf("%s\n",p);

編譯出錯:

- error: increment of read-only variable 『p』

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

程式語言 const限定詞的用法

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

const限定詞使用

可以 const關鍵字建立不允許修改的陣列 const int days1 12 1.在指標和形參宣告中使 const 宣告普通變數和陣列時使 const 關鍵字很簡單。指標則複雜 些,因為要區分是限定指標本 為const 還是限定指標指向的值為 const。下 的宣告 const float pf...

c語言中的型別限定詞之一volatile

大多數計算機擁有一系列暫存器,其訪問速度比計算機主存更快。好的編譯程式能進行一種被稱為 冗餘裝入和儲存的刪去 redundant load and store removal 的優化,即編譯程式會在程式中尋找並刪去這樣兩類 一類是可以刪去的從記憶體裝入資料的指令,因為相應的資料已經被存放在暫存器中 ...