在c語言中常用#define命令來定義符號常量:#define pi 3.14159
實際上,只是在預編譯時進行字元置換,把程式中出現的字串pi全部換成3.14159。在預編譯之後,程式中不再有pi這個識別符號。pi不是變數,沒有型別,不占用儲存單元,而且容易出錯。
c++提供了用const定義常變數,如:const float pi = 3.14159;
定義了常變數pi, 它具有變數的屬性,有資料型別,占用儲存單元,有位址,可以用指標指向它,只是在程式執行期間的值是固定的,不能變。它方便易用,避免了用#define定義符號常量時出現的缺點。因此,const 問世後,已取代了用#define定義符號常量的作用。一般把程式中不允許改變值的變數定義為常量。const 可以與指標結合使用,有指向常變數的指標,常指標,指向常變數的常指標等。
「頂層const」和「底層const」的思考
頂層const 顧名思義就是對物件本身的一種限制,而使得物件本身為常量。例 const int a 1 對物件本身做了限制,變為常量,是 頂層const 同理,底層const 通常與指標和引用等復合型別的基本型別有關,那是對指標 引用型別所牽連的物件的限制,那是對底層的限制。例 const int ...
C 的頂層const和底層const
指標如果新增const修飾符時有兩種情況 1指向常量的指標 代表不能改變其指向內容的指標。宣告時const可以放在型別名前後都可,拿int型別來說,宣告時 const int和int const 是等價的。宣告指向常量的指標也就是底層const,下面舉乙個例子 int num a 1 int con...
指向const的指標和const指標
指向const的指標 int gorp 16 int chips 12 const int p snack gorp 其中p snack指向乙個const int。p snack 20 不被允許,p snack的值為const,禁止修改p snack指向的值,p snack chips 可以執行,p...