const和readonly經常被用來修飾類的字段,兩者有何異同呢?
const
1、宣告const型別變數一定要賦初值嗎?
--一定要賦初值
public生成的時候,會報如下錯:class
student
正確的應該這樣寫:
public2、宣告const型別變數可以用static修飾嗎?class
student
--不可以
public生成的時候,會報如下錯:class
student
正確的應該這樣寫:
public因為const預設是static。class
student
3、執行時變數可以賦值給const型別變數嗎?
--不可以
public生成的時候,會報如下錯:class
student
}
const型別變數是編譯期變數,無法把執行時變數賦值給編譯期變數。
4、const可以修飾引用型別變數嗎?
--可以,但只能給引用型別變數賦null值。
public生成的時候,會報如下錯:class
student
public
class
teacher
正確的應該這樣寫:
publicreadonlyclass
student
public
class
teacher
5、宣告readonly型別變數一定要賦初值嗎?
--不一定,既可以賦初值,也可以不賦初值。
以下不賦初值的寫法正確:
public以下賦初值的寫法也對:class
student
public6、執行時變數可以賦值給readonly型別變數嗎?class
student
--可以
以下在建構函式中給readonly型別變數賦值是可以的:
public7、宣告readonly型別變數可以用static修飾嗎?class
student
}
--可以的
以下寫法正確:
public總結const修飾符:● 用const修飾的變數是編譯期變數class
student
● 不能把執行時變數賦值給const修飾的變數
● const修飾的變數在宣告時要賦初值
● const修飾的變數不能在前面加static修飾
● cosnt也可以修飾引用型別變數,但一定要給引用型別變數賦null初值
readonly修飾符:
● 用readonly修飾的變數是執行時變數
● 可以把執行時變數賦值給readonly修飾的變數
● readonly修飾的變數在宣告時,既可以賦初值,也可以不賦初值
● readonly修飾的變數可以在前面加static修飾符
C語言關鍵字 Const
c中const的使用 雖然這聽起來很簡單,但實際上,const的使用也是c語言中乙個比較微妙的地方,微妙在何處呢?請看下面幾個問題。問題 const變數 常量 為什麼下面的例子在使用乙個const變數來初始化陣列,ansi c的編譯器會報告乙個錯誤呢?const int n 5 int a n 答案...
C中const關鍵字
const 用法 定義常量,修飾指標 函式的輸入引數和返回值,把定義或者修飾的變數屬性設為唯讀。本質上它只是在全域性資料段或者棧中定義的是乙個唯讀的常量,不是真正位於字串常量區。所以關鍵字const 並不能把變數變成真正的常量,事實上還是可以改變 const 定義的變數的值。const 的目的是為了...
C語言關鍵字const
const 是constant的縮寫,只要有變數前面用const修飾,就意味著該變數裡面的資料是readonly。const可以修飾基本型別,構造型別,指標,等。const int a 10 去掉int a 的值不變 int const a 10 去掉int a的值不變 const int a 10...