快速撐握C 知識點之變數,型別及型別轉換

2021-09-03 04:56:08 字數 1268 閱讀 7163

1.變數:變數是指在程式的執行過程中隨時可以發生變化的量。

語法:資料型別 變數名;

例如:

stra="

這是乙個字串";

2.常量:也稱常數,是一種恆定的或不可變的數值或資料項。

語法: const 資料型別 常量名 = 常量值;

例如:string

strconst="

我是常量喔";

3.資料型別:

在c#當中,分為兩種資料型別,值型別與引用型別.

值型別,表示實際資料,只是將值存放在記憶體中,值型別都儲存在堆疊中,包括:

簡單型別:int,char,float,double,bool等,還有結構及列舉.

引用型別,表示指向資料的指標或引用,包含記憶體堆中物件的位址,為 null時則表示未引用任何物件,包括:

類,介面,陣列,字串,委託,object.

有兩種引用型別在c#中受到了特別的重視,它們的c#別名和預定義值型別的c#別名很相像。第一種是object類(c#別名是object, o小寫)。這是所有值型別和引用型別的最終基類。因為所有的型別派生自object,所以可以把任何型別轉換為object型別,甚至值型別也可以轉換。所有的值型別都派生自引用型別。

第二種是string類。字串代表乙個固定不變的unicode字串行。字串在很多方面都像值型別,而不像引用型別。

4.型別轉換:

字串與值型別之間的轉換:

型別.parse(字串),返回值為相應的型別.

convert.to型別(引數),引數為多種,返回值為型別.

例:

void

main()

強制型別轉換:

在同為值型別或同為引用類時,從較小資料型別到較大資料型別的轉換稱為擴充套件轉換,否則稱為收縮轉換。編譯器能進行隱式的擴充套件轉換,對於收縮轉換必須進行顯式的強制性轉換。因為收縮轉換會導致丟失資料,在轉換前我們要檢查實際值是否超出目標型別的範圍。另乙個辦法是使用checked運算子,如果轉換時丟失資料將丟擲乙個錯誤。

如:void

main()

裝箱與拆箱

定義:把值型別轉換為object的過程稱為裝箱。

由於值型別與引用型別在記憶體中的儲存方式不同,所以我們在轉換的過程的理解上有些複雜,實際的語法跟強制型別轉換無區別,我們形象的稱之為裝箱,與拆箱.對於拆箱的限制其實很好理解,因為誰也不能從裝的是蘋果的箱子裡拆出葡萄來.

void

main()

關於這部分我們就先說到這裡,如果有朋友想更詳細的了解,下例**:

[url]

快速撐握C 知識點系列文章

首先,我寫這個系例只是為了那些想快速學習c 相關知識的朋友提供,可能有些知識點寫不到.請原諒 1.快速撐握c 知識點之什麼是c 及.net framework 2.快速撐握c 知識點之編寫乙個c 程式 3.快速撐握c 知識點之字串格式化,字面量,轉義符 4.快速撐握c 知識點之變數,型別及型別轉換 ...

快速撐握C 知識點系列之 struct 結構

1.引言 在我們之前的文章中,介紹了類及面象物件的基本概念,那我們也知道了類是引用型別,是儲存在託管堆中的。通過一定義類,我們可以在資料的生存期上得到很高的靈活性,但是也會讓程式的效能有一定的損失。雖然這種損失很小,但當我們只需要定義乙個很小的結構時,用類來定義就有些浪費,對於這樣的問題,c 有相對...

基本變數型別 和引用型別 知識點

ecmascript 變數可能包含兩種不同資料型別的值 基本型別值和引用型別值 基本型別值指的是儲存在棧記憶體的簡單的資料段,即這種值完全儲存在記憶體中的乙個位置。而引用型別值則是指那些儲存在堆記憶體中的物件,意思是變數中儲存的實際上只是乙個指標,這個指標指向記憶體中的另乙個位置,該位置儲存物件。基...