首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 指針聲明風格與 const 修飾符深度解析

     編輯:程式設計綜合問答

風格差異:int* p vs int *p

  • 編譯器視角:完全等價,空白符被忽略。
  • 編碼風格視角:
    • int* p 強調「p 是 int* 類型」,符合「類型在左」原則(C++ Core Guidelines 推薦)。
    • int *p 強調「*p 是 int」,貼近 C 風格及聲明模仿使用語法。
    • 建議:團隊統一風格,現代 C++ 傾向 int* p,且每行僅聲明一個指針避免 int* p, q 誤以為 q 也是指針。

const 修飾符位置語義

聲明含義口訣
int* const p頂層 const:p 本身不可變(指針常量),可修改指向的值const 在 * 右邊,鎖定指針
const int* p
int const* p
底層 const:p 指向常量整數,不可通過 p 修改值,p 可指向別處const 在 * 左邊,鎖定值
const int* const p雙重 const:指針與指向值均不可變左右都有 const

實戰建議

  • 函數參數盡量用 const T* 或 const T& 表達只讀意圖。
  • 使用 auto 推導配合 const 減少錯誤:auto p = &x; → int*;const auto p = &x; → int* const。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved