1. 程式人生 > >C語言const在指標上的應用

C語言const在指標上的應用

最近在看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;

雖然也能這樣設定,但我現在不明白這種設定有啥用!哈哈以後說不定就明白了,到時候再補充吧!