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


        一、常量指針(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++中常量指針與指針常量的定義與區別。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM