C語言const在指標上的應用
阿新 • • 發佈:2019-01-22
最近在看C語言的指標部分,突然發現了一個很有意思的現象,就是const在指標中的應用:
首先,const可以宣告一個常量類似於#define的巨集定義,但是const還可以宣告const陣列、const指標和
指向const的指標。
const 陣列比較簡單,就是宣告陣列以後其值就沒法再改變了。
而指向const的指標不能用於改變值,如:
double rates[5]={22.3,34.5,34,23,56.7};
const double *pd=dates;//pd指向陣列的首元素,該行程式碼把pd指向的指標型別宣告為const double
//我覺得把const double 放在一起看更好理解。
*pd=29.89;//這樣是不行的
但是 pd++;是允許的,此時pd指向rates[1],因為我們可以把const double 看成一個變數型別,pd是指標,
所以指標的指向肯定是可以移動的。
還有一種是const指標,就是一種不能指向別處的指標,這個主要取決於const的位置。
double * const pc=rates;//pc指向陣列的開始
這樣的話可以用這種指標修改它所指向的值,但是它只能指向初始化時設定的地址。
最後還可以在建立指標的時候使用const兩次,這樣的話該指標既不能更改它所指向的地址,也不能修改指向地址
上的值。
如:const double * const pc=rates;
雖然也能這樣設定,但我現在不明白這種設定有啥用!哈哈以後說不定就明白了,到時候再補充吧!