1. 常量是一種識別符號,值在執行期間不變。
2. c++語言可以用const定義常量和#define定義常量(稱為巨集常量),常量增加了程式的可讀性,使程式使用起來更加方便(如果程式中需要在多個地方改動字串或數字,容易出錯),使其不易出錯。
盡量使用含義直觀的常量表示程式中多次出現的字串或數字,比如:
#define max 200
const int max = 200;
3.const 與 #define比較
const 常量有資料型別,而巨集常量沒有資料型別;編譯器可以對前者進行安全檢查,而後者只進行字元替換,字元替換後可能會產生錯誤(邊際效應)。
4.常量定義規則
需要對外公開的常量放在標頭檔案裡,不需要對外公開的常量放在定義檔案的頭部,不同檔案的常量常集中放在乙個公共的標頭檔案中(便於管理),
如果某一常量與其他定義常量有密切關係,應在定義中包含這個關係,如:
const int num=50;
const int amout=num*2;
5.類中的常量
#define 定義的巨集常量是全域性的
如果希望定義的常量只在類中有效,用const修飾資料成員實現,const資料成員只在某個物件生存期裡是常量,對於整個類是可變的,類可以建立多個物件,不同物件其const資料所對應得值不同。
const資料成員初始化只能在類建構函式的初始化表中進行,如:
class a
;a::a(int size) : size(size) // 建構函式的初始化表
a a(100); // 物件 a 的 size 值為 100
a b(200); // 物件 b 的 size 值為 200
6.類中的恆定常量用類中的列舉常量實現
列舉常量不會占用物件的儲存空間,在編譯時被全部求值,它的隱含資料型別是整型,不能表示浮點數且最大值有限.
列舉常量舉例:
class a
; // 列舉常量
int array1[size1];
int array2[size2];
};
C語言相關知識筆記
一 gcnew與new的區別 c cli中使用gcnew關鍵字表示在託管堆上分配記憶體,並且為了和以前的指標區分,用 來替換 就語義上來說他們的區別大致如下 1.gcnew返回的是個控制代碼 handle 而new返回的是實際的記憶體位址.2.gcnew建立的物件由虛擬機器託管,而new建立的物件必...
C語言相關知識
在linux系統之中,eof根本不是乙個字元,而是當系統讀取到檔案結尾,所返回的乙個訊號值 也就是 1 linux中,在新的一行的開頭,按下ctrl d,就代表eof 如果在一行的中間按下ctrl d,則表示輸出 標準輸入 的快取區,所以這時必須按兩次ctrl d windows中,ctrl z表示...
C語言學習筆記 C常量
常量是固定值,在程式執行期間不會改變。這些固定值,又叫字面量。常量可以是任何的基本資料型別,比如整數常量 浮點常量 字元常量 或字串字面值,也有列舉常量。常量就像是常規的變數,只不過常量的值在定義後不能進行修改。整數常量可以是十進位制 八進位制或十六進製制的常量。字首指定基數 0x或0x表示十六進製...