| 宣告 | 名稱 | 意義 | 範例 |
|---|---|---|---|
const int *pint const *p | 常數指標 (Pointer to const) | 指向的**值**不可修改,指標本身可指向別處 | int a=10; const int *p=&a; *p=20; // 錯誤 p=&b; // 正確 |
int *const p | 指標常數 (Const pointer) | 指標**本身**不可修改 (須初始化),可修改指向的值 | int a=10; int *const p=&a; *p=20; // 正確 p=&b; // 錯誤 |
const int *const p | 指向常數的指標常數 | 指標與指向的值**皆不可修改** | int a=10; const int *const p=&a; *p=20; // 錯誤 p=&b; // 錯誤 |
* (指標宣告符)。const → 指標本身不可變 (指標常數)。const → 指向的值不可變 (常數指標)。例子:const int *const p
→ 右邊 const 修飾 * → p 不可變
→ 左邊 const 修飾 int → *p 不可變
const T*,表達意圖並獲編譯器保護。T* const 固定指向對象。std::span, std::string_view 等非擁有視圖,減少裸指標使用。