在代數中所謂的常數 和程式語言中的常數在概念上有些不同: 在代數中的常數 (例如: 在 f(x) = x3 + c 中, c 表示在自變數與因變數改變時維持固定的數字, 其值不是觀察的重點, 但可以是某些合理的數字中的一個。 程式語言中的常數在觀念上和程式中的變數是一致的, 即 常數是一個 CPU 記錄數值資料的地方, 只是 CPU 在整個程式執行過程中, 只會去讀取該資料, 而不會修改該資料。
例如:myVariable + 1 、 2 * 3.14159 、 'a' 、 "abcd" 等等, 這類常數 --- CPU 記錄資料的地方 --- 在程式內沒有一個像 sum 或是 count 這樣的名字, 可是其實你可以想像成它的名字就是像 1、2、3.14159 等名稱。 例如:程式中如果有兩個地方使用 1
其實你可以想像 CPU 做的事情是到叫做 x 的變數和叫做 1 的常數去取得資料, 作相加的動作再把結果存入 x 變數裡面, 然後到叫做 z 的變數和叫做 1 的常數去取得資料, 做相加的動作在將結果存入變數 r 裡面。
maxCount 是一個不可改變的整數變數, 程式裡不可以嘗試去改變這個變數的內容 (例如: maxCount = 99 ;), 除此之外, maxCount 和其他整數變數是一樣的, 那為什麼不在程式裡每一次出現 maxCount 的地方都用 100 來取代呢? 效果顯然是一樣的嘛。例如:
|
|
原因:
那為什麼不乾脆用變數就好了呢?
原因:怕你寫大的程式時, 不小心用到像 maxCount++ 這樣的敘述去更改此變數的內容, 或是傳進某一個函式內去更改到 maxCount 的內容。
C 語言裡還容許你用前處理器的 #define 來定義常數, 例如: