常變數和符號常量的區別?常變數和文字常量的區別?

2021-09-19 16:10:44 字數 1232 閱讀 1091

定義符號常量:#define pi 3.1415926        //沒有分號

定義常變數  :const float pi=3.1415926;

常變數:具有變數的特徵是存在乙個以變數名命名的儲存單元,在一般情況下,儲存單元中的內容是可以變化的。而對於常變數,在變數的基礎上加了乙個限定:儲存單元中的內容不允許變化,仍然是有儲存單元的。

符號常量:是使用乙個字串代替程式**現的乙個識別符號,是編譯時把所有的符號常量都替換成制定的字串,它沒有型別,在記憶體中也不存在以符號常量命名的儲存單元。在其作用域內其值不能改變和賦值。

常量指值不可改變的量。在c/c++中常量分為兩種:文字常量(literal constant)和常變數(constant variable)。 

文字常量和常變數的本質區別:文字常量編譯之後儲存在**區,不可定址,常變數儲存在資料區,可定址。

int& r=5;//編譯錯誤
這條語句出現編譯錯誤,原因是文字常量不可定址,因而無法為文字常量建立引用。 

下面這條語句又是合法的:

const int& r=5;
原因是編譯器將乙個文字常量轉化成常變數的過程。在資料區開闢乙個值為5的無名整型常變數,然後將引用r與這個整型常變數進行繫結

數值常量:包括整型常量和實型常量。整型常量就是指常整數,有十進位制、八進位制、十六進製制三種表示形式。實型常量只採用十進位制小數形式和指數形式表示,包括單精度浮點數(float)、雙精度浮點數(double)和長雙精度浮點數(long double)。

int a=4;//4為文字數值常量中的整型常量

float b=4.4為單精度實型常量

double c=1.4e10表示的值為1.4×10^5,雙精度實型常量

字元常量:指單個ascii碼字元,有256個,如』a』和』b』。

符號常量:用標示符代表乙個常量,使用之前必須定義。

#define num 100//num為符號常量,100為整型常量

enum weekday;//sun,mon等均為符號常量

關於static我會自己再在後面去補充。

符號常量和常變數的區別

符號常量在c語言中,可以用乙個識別符號來表示乙個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為 define 識別符號 常量 其中 define 也是一條預處理命令 預處理命令都以 開頭 稱為巨集定義命令,其功能是把該識別符號定義為其後的常量值。一經定義,以後在程式中所有出現該識別...

C 常量 符號變數 常變數

常量分為數值型常量 即常數 和字元型常量。例如 12,5,0為整形常量,6.2,2.3為實型常量 包含在兩個單撇號之間的字元為字元常量,如 a x 注 字元常量只包括乙個字元,如 ab 是不合法的 字元常量區分大小寫字母,如 a 和 a 是兩個不同的字元常量 撇號 是定界符,而不屬於字元常量的一部分...

常量和常變數(const)

字元型常量 單撇號之間 胡思亂想 變數名的使用 就是當初發明c c 語言的人,創造的一種方便程式設計師讀寫記憶體單元的辦法,而且以不同許可權宣告的變數名,就有不同的讀寫許可權,乙個記憶體單元,被多個變數名開啟。預設情況下,也就是最常使用聲出來的變數名具有讀寫的許可權。這和檔案io是乙個性質的東西,但...