Moposx的部落阁

C++ 中的指針常量、常量指針和指向常量的指針常量

字数统计: 335阅读时长: 1 min
2020/05/21 Share

在學習 C++ 的指針時,被 const 修飾指針的情形給難住了。指針作為一種特殊類型的變量,一方面它存儲著內存地址,另一方面又可以解引用獲得數據。

指針的定義:儲存內存地址的一種變量。

聲明指針:

PointedType* pointer_var_name = NULL;

const關鍵字的含義:被它修飾的對象或者變量無法被修改

const和指針可以產生三類搭配:

  1. 指針常量
    例: int* const p_var = &var;
    const關鍵字修飾變量p_var,這個變量便不能再被修改了。此時指針存儲的內存地址不可更改,但引用的變量的值是可以變動的。
  2. 常量指針
    例: const int* p_var = &var;
    這時,int* 直接修飾 p_var,並非不可變,因此指針對變量的引用地址可以改變,但是引用變量的值不可變更。(也就是指向常量的指針)
  3. 指向常量的指針常量
    例:const int* const p_var = &var;
    這種最容易理解,不但指針對變量的引用地址不能變,引用的變量的值也不可變。

小結:只需觀察const關鍵字所處的位置,他在變量名旁邊說明引用地址不能改變变,而在類型前面則說明引用的值不能變。

CATALOG