常量分為數值型常量(即常數)和字元型常量。
例如:12,-5,0為整形常量,6.2,-2.3為實型常量;
包含在兩個單撇號之間的字元為字元常量,如』a』,』x』。
注: ①字元常量只包括乙個字元,如』ab』是不合法的;
②字元常量區分大小寫字母,如』a』和『a』是兩個不同的字元常量;
③撇號(』)是定界符,而不屬於字元常量的一部分;
例如:
cout<<』a』;
輸出的是乙個字母」a」,而不是三個字元「』a』「。
定義:用乙個符號名代表乙個常量。
例如:
#include using namespace std;
#define price 30 //這不是語句,末尾不用加分號
int main()
{int num total; //num代表購貨數量,total代表總貸款
num=10;
total=num*price; //price 是符號常量,代表(30)單價
cout<<」total=」《執行結果為:total=300
在該例中用預處理指令#define指定price在本程式中代表常量30。在進行編譯預處理時,所有的price都被置換為30,在正式進行編譯時已經沒有price這個識別符號了。
注:符號常量雖然有名字,但它不是變數。
使用符號常量的好處:
① 含義清楚。在乙個規範的程式中不提倡使用很多直接常量,如sum=153023.5*43。應盡量使用「見名知意「的變數名和符號常量。
② 在需要改變乙個常量時能做到「一改全改「。
定義:在定義變數時,如果加上關鍵字const,則變數的值在執行期間不能改變,這種變數稱為常變數,又稱唯讀變數。
在定義常變數時必須同時對它初始化(即指定其值),此後它的值不能再改變。常變數不能出現在賦值號的左邊。
例如:
const int a;
a=3; //常變數不能被賦值
這種寫法是錯誤的。
正確的寫法為:
const int a=3;
也可以用表示式對常變數進行初始化:
const int b=3+6; //b的值被指定為9
#define指令定義的是符號常量,符號常量只是用乙個符號代替乙個字串,在預編譯時把所有符號常量替換為所指定的字串,它沒有型別,在記憶體中並不存在以符號常量命名的儲存單元。
const定義的常變數,常變數具有變數的特徵,它具有型別,在記憶體中存在著以它命名的儲存單元,可以用sizeof運算子測出其長度。
與一般變數唯一的不同是指定變數的值不能改變。
C 變數 常量 符號常量
變數 int i 0 i 是變數 i 5 i 可以修改 變數就是程式內乙個記憶體位置的符號名,在該記憶體位置可以儲存資料,並可以通過符號名對該記憶體位址存放的資料進行訪問。變數的值可以修改,是可變的,但在某個確定的時刻,變數的值是確定的,並一直保持到下次被修改之前。常量 int a 10 a 是變數...
常變數和符號常量的區別?常變數和文字常量的區別?
定義符號常量 define pi 3.1415926 沒有分號 定義常變數 const float pi 3.1415926 常變數 具有變數的特徵是存在乙個以變數名命名的儲存單元,在一般情況下,儲存單元中的內容是可以變化的。而對於常變數,在變數的基礎上加了乙個限定 儲存單元中的內容不允許變化,仍然...
符號常量和常變數的區別
符號常量在c語言中,可以用乙個識別符號來表示乙個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為 define 識別符號 常量 其中 define 也是一條預處理命令 預處理命令都以 開頭 稱為巨集定義命令,其功能是把該識別符號定義為其後的常量值。一經定義,以後在程式中所有出現該識別...