一個宣告常數的語句和宣告及初始化變量的語句相似,分別只是在宣告常數的語句中,最前方加上了保留字 const。例如︰
C++ 語句 | 等同的 Pascal 語句 |
const float x = 3.7; | const x = 3.7; |
const int a = 4, b = 7; | const a = 4; b = 7; |
必須留意貯存在常數內的值不能被更改。
同址別名是一個在程序中使用的名字(通常較有意思、較易記或較易鍵入),程序在被編譯前,同址別名會被先譯成另一個名字(通常比較沒意思、較難記或較難鍵入)。
我們可以使用 #define
這個前置處理器指令來定義同址別名。例如,以下的語句定義了一個叫做
MAX 的同址別名,它和 100 完全一樣︰
#define MAX 100
在編譯的過程中,程序中的所有 MAX 會被 100 所取代︰
#include <iostream.h> #define MAX 100 ... int a[MAX]; ... for (i = 0; i < MAX; i++) ... if (n >= MAX * 2) ... |
……會被譯成…… | #include <iostream.h> ... int a[100]; ... for (i = 0; i < 100; i++) ... if (n >= 100 * 2) ... |
正如以上例子所示, #define 這個前置處理器指令可以用來定義常數。使用 const 及 #define 的分別在於︰ const 指示程序在存貯器中拿取一些位置來存貯被定義的常數,而 #define 所定義的「常數」並沒有存在存貯器中,這些同址別名在編譯的過程中譯成原來的名稱。
事實上,使用 C++ 的程序編寫員較喜歡使用 #define 去定義常數。
程序二十四使用了 #define 去定義常數。