指標使用const 限定符
const限定符的作用就是告訴編譯器這個被限定的變數是不可修改的。
可以使用const限定符來實現「最小許可權原則」。
向函式傳遞的指標有4種: 1、char *sptr 2、const char *sptr 3、char *const sptr
4、const char *const sptr
2、const char *sptr 可以指向相應型別的任何資料,但是它所指向的資料項是不可以修改的。這個指標可以接受陣列中得乙個實參,該函式將在不改變陣列元素值得情況下處理每個元素。
int main(void)
void (const int *sptr)
這個是錯誤的,以為改變了資料
3、char *const sptr 所指向的記憶體單元總是不變的,而儲存在這個記憶體單元中的資料可以通過指標改寫,簡單點說,陣列名預設就是這種指標。
int main(void)
這個就是錯誤的,因為它改變了位址。
4、const char *const sptr
這個指標只有最小的訪問許可權。這樣的指標總是指向乙個固定的記憶體單元,並且記憶體單元中的資料不可以修改。
在編寫指標程式的時候 const 與 變數型別可以互換。
C 的const限定符
const限定符總是讓人很頭疼,下面講解一下幾個比較容易混淆的概念 對常量的引用 常量引用 一般情況下,引用的型別要與其所引用的物件的型別一致,其中的例外情況就是,當初始化常量引用時,允許用任意表示式作為初始值,只要改表示式能轉換成引用的型別即可。const int i 1 const int ri...
C 的const限定符
一 const常量 const int a 123 編譯時初始化 const int a get size 執行時初始化 a 111 錯誤,a是常量物件,不能改變了 const int b 錯誤 二 對const和const引用的初始化 初始化常量或常量引用時允許用任意表示式作為初始值,只要該表示式...
C語言的const型別限定符
我們通常用型別和儲存類別來描述乙個變數。c90還增加了兩個屬性 恆常性 constancy 和易變性 volatility 這兩個屬性分別用關鍵字const和volatile來宣告,以這兩關鍵字建立的型別是限定型別。c99標準新增了第3個限定符 restrict,用於提高編譯器優化。c11新增了第四...