首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 指標常數與常數指標完全圖解

     編輯:關於C++

三種核心形式

宣告名稱意義範例
const int *p
int 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; // 錯誤

記憶口訣:從右往左讀

  1. 找到 * (指標宣告符)。
  2. **右邊**有 const → 指標本身不可變 (指標常數)。
  3. **左邊**有 const → 指向的值不可變 (常數指標)。
  4. 兩邊都有 → 兩者皆不可變。

例子:const int *const p
→ 右邊 const 修飾 * → p 不可變
→ 左邊 const 修飾 int → *p 不可變

實務建議

  • 函式參數不需修改內容時,優先用 const T*,表達意圖並獲編譯器保護。
  • 迭代器、觀察者模式常用 T* const 固定指向對象。
  • 現代 C++ 偏好 std::span, std::string_view 等非擁有視圖,減少裸指標使用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved