七問C 關鍵字const和readonly

2021-09-07 22:35:36 字數 1836 閱讀 7146

const和readonly經常被用來修飾類的字段,兩者有何異同呢?

const

1、宣告const型別變數一定要賦初值嗎?

--一定要賦初值

public

class

student

生成的時候,會報如下錯:

正確的應該這樣寫:

public

class

student

2、宣告const型別變數可以用static修飾嗎?

--不可以

public

class

student

生成的時候,會報如下錯:

正確的應該這樣寫:

public

class

student

因為const預設是static。

3、執行時變數可以賦值給const型別變數嗎?

--不可以

public

class

student

}

生成的時候,會報如下錯:

const型別變數是編譯期變數,無法把執行時變數賦值給編譯期變數。

4、const可以修飾引用型別變數嗎?

--可以,但只能給引用型別變數賦null值。

public

class

student

public

class

teacher

生成的時候,會報如下錯:

正確的應該這樣寫:

public

class

student

public

class

teacher

readonly

5、宣告readonly型別變數一定要賦初值嗎?

--不一定,既可以賦初值,也可以不賦初值。

以下不賦初值的寫法正確:

public

class

student

以下賦初值的寫法也對:

public

class

student

6、執行時變數可以賦值給readonly型別變數嗎?  

--可以

以下在建構函式中給readonly型別變數賦值是可以的:

public

class

student

}

7、宣告readonly型別變數可以用static修飾嗎?  

--可以的

以下寫法正確:

public

class

student

總結const修飾符:● 用const修飾的變數是編譯期變數

● 不能把執行時變數賦值給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...