c 中const與readonly區別

2021-09-22 20:31:27 字數 722 閱讀 9570

原文:

c#中const與readonly區別

const 的概念就是乙個包含不能修改的值的變數。

常數表示式是在編譯時可被完全計算的表示式。因此不能從乙個變數中提取的值來初始化常量。

如果 const int a = b+1;b是乙個變數,顯然不能再編譯時就計算出結果,所以常量是不可以用變數來初始化的。

readonly 允許把乙個字段設定成常量,但可以執行一些運算,可以確定它的初始值。

因為 readonly 是在計算時執行的,當然它可以用某些變數初始化。

readonly 是例項成員,所以不同的例項可以有不同的常量值,這使readonly更靈活。

readonly 關鍵字與 const 關鍵字不同。

1. const 字段只能在該字段的宣告中初始化。

readonly 字段可以在宣告或建構函式中初始化。因此,根據所使用的建構函式,readonly 字段可能具有不同的值。

2. const 欄位是編譯時常數,而 readonly 欄位可用於執行時常數。

3. const 預設就是靜態的,而 readonly 如果設定成靜態的就必須顯示宣告。

4.const 對於引用型別的常數,可能的值只能是 string 和 null。

readonly可以是任何型別

總結const只能在初期就使用常量初始化好。對於每一次編譯後的結果,const的值是固定的,而readonly的值是可以在執行的時候才確定值的~~

c中的const與c 中的const

c中的const是乙個偽唯讀識別符號。include include int main 此時輸出a的值為20,被指標間接的改變了。c 中,const進行了增強,不在是乙個偽識別符號了。const int a 10 int p int a p 20 cout a p endl cout a endl ...

c 中 const與指標

const與指標這塊自己一直理解的朦朦朧朧的,今天在vs上專門做個一些測試,特此記錄。const與指標一般有兩種情況 一是修飾指標指向的物件,二是用const修飾指標.如 int age 23 const int pt age int age 23 const int pt age int sage...

c與c 中const使用

c中可以修改const修飾的變數的值 區域性變數 int main 全域性變數 const int c 10 唯讀 int main c 中不可以修改const修飾的變數的值 區域性變數 int main 為什麼 p輸出的是11?原因 區域性變數 const int c其實是儲存在符號表中,無記憶體...