1. 程式人生 > >C++ 常量指針與指針常量

C++ 常量指針與指針常量

class c++ color ... def 現在 特殊 point 結合

一、常量指針(constant pointers):指針自身是常量,const關鍵字出現在星號右邊。如:

1 char greeting[] = "Hello";
2 char* const p = greeting; // const pointer, non-const data

二、指針常量(pointers to constants):指針所指物是常量,const關鍵字出現在星號左邊。如:

1 char greeting[] = "Hello";
2 const char* p = greeting;      // non-const pointer, const data


我對這兩個概念的理解來自於《Effective C++》(第三版,侯捷譯)。

在該書的第一章-條款02中有這樣一段話:”當我們以常量替換#defines, 有兩種特殊情況值得說說。第一是定義常量指針(constant pointers)。由於常量定義式通常被放在頭文件內......因此有必要將指針(而不只是指針所指之物)聲明為const。“。由此得到常量指針的定義。

結合第二章-條款03中的這段話:“如果關鍵字const出現在星號左邊,表示被指物是常量;如果出現在星號右邊,表示指針自身是常量;......”,就得到了C++中常量指針與指針常量的定義與區別。

C++ 常量指針與指針常量