複製鏈接
請複製以下鏈接發送給好友

符號常量

鎖定
符號常量是在C語言中,可以用一個標識符來表示一個常量,這個標識符稱之為符號常量。其特點是編譯後寫在代碼區,不可尋址,不可更改,屬於指令的一部分。
中文名
符號常量
外文名
Symbolic constant
實    質
常量
另    稱
符號常量

目錄

符號常量使用宏

符號常量在使用之前必須先定義,其一般形式為:
#define 標識符 常量
enum EnumName{標識符,標識符,...};
其中#define 也是一條預處理命令(預處理命令都以"#"開頭),稱為定義命令,其功能是把該標識符定義為其後的常量值。一經定義,以後在程序中所有出現該標識符的地方均代之以該常量值。習慣上符號常量的標識符用大寫字母,變量標識符用小寫字母,以示區別。
枚舉類型中的元素也是符號常量,如enum Weekday{SUN, MON, TUES, WED, THU, FRI, SAT}。
例:
#include<stdio.h>
#define PRICE 30
{
int num,total;
num=10;
total=num* PRICE;
printf("total=%d",total);
}
使用符號常量的好處是:
含義清楚;
能做到“一改全改”。

符號常量用關鍵字

形式為 :const type name = value;
例如:const int MONTHS = 12;
這樣就可以在程序中使用MONTHS而不是12了。常量(如MONTHS)被初始化後,其值就被固定了,編譯器將不允許再修改該常量的值。假如您這樣做:
MONTHS = 18;
是不對的,就好像您將值4賦給值3一樣,無法通過編譯。
此外注意應在聲明中對const進行初始化。下面的代碼是不正確的:
const int toes;// toes的值此時是不確定的
toes=10;//這時進行賦值就太晚了
如果在聲明常量時沒有提供值,則該常量的值是不確定的,而且無法修改它。 [1] 
參考資料
  • 1.    Stephen Prata.C++ Primer Plus.美國:人民郵電出版社(中譯版),2005.5:51頁