關於指標賦值和const使用的一些規則

2021-09-30 07:50:59 字數 907 閱讀 9759

double rates[3]=;

const double locked[4]=;

const double *pc=rates;   //合法

pc=locked;                      //合法

pc=&rates[3];                  //合法

double rates[3]=;

const double locked[4]=;

double *pc=rates;           //合法

pc=locked;                      //非法

pc=&rates[3];                  //合法

這樣的規則是合理的。否則,就可以使用指標來修改被認為是常量的資料。

在函式參量定義中使用const,不僅可以保護資料,而且使函式可以使用宣告為const的陣列。

const還有很多用法。例如:可以使用關鍵字const來宣告並初始化指標,以保證指標不會指向別處,關鍵在於const的位置:

double rates[3]=;

double * const pc=rates;          //pc指向陣列的開始處

pc=&rates[2];                          //不允許

*pc=92.99                              //可以,更改rates[0]的值

這樣的指標仍然可以用於修改資料,但它只能指向最初賦給它的位址。

double rates[3]=;

const double * const pc=rates;

pc=&rates[2];              //不允許

*pc=92.99                  //不允許

關於const和指標的專題

const和指標的問題是筆試裡經常出現的問題。這裡綜合一下各種不同的情況。首先是幾種const與指標組合的區分,比如 int b 500 const int a b 1 int const a b 2 int const a b 3 const int const a b 4 1 和 2 其實是一樣...

關於const 指標

第一種const指標 const double pc 0 這種型別的定義表示pc指標指向的記憶體的內容不可通過pc來修改 const 變數的位址只能賦給const指標 const double pc 0 const double minwage 9.60 pc minwage 但是const指標也可...

指向const的指標和const指標

指向const的指標 int gorp 16 int chips 12 const int p snack gorp 其中p snack指向乙個const int。p snack 20 不被允許,p snack的值為const,禁止修改p snack指向的值,p snack chips 可以執行,p...