C 語言 常量相關知識筆記

2021-07-24 14:02:55 字數 1138 閱讀 3158

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表示十六進製...