C 常量 符號變數 常變數

2021-09-17 08:33:48 字數 1362 閱讀 6692

常量分為數值型常量(即常數)和字元型常量。

例如: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 也是一條預處理命令 預處理命令都以 開頭 稱為巨集定義命令,其功能是把該識別符號定義為其後的常量值。一經定義,以後在程式中所有出現該識別...