c 框架筆記 陣列

2021-06-01 18:09:39 字數 1564 閱讀 7427

陣列

陣列型別轉換的工作過程:

//建立乙個2維filestream陣列

filestream[,] fs2dim = new filestream[5, 10];

//隱式轉換為乙個2維的object陣列

object[,] o2dim = fs2dim;

//不能從2維陣列轉換為1維陣列,編譯器報錯error cs00300:不能講'object[*,*]'型別轉換為'system.io.stream'

stream sldim = (stream) o2dim;

//顯示轉換為2維stream陣列

stream[,] s2dim = (stream[,]) o2dim;

//顯示轉換為2維string 陣列,能編譯通過,但在執行時會丟擲invalidvastexception異常

string[,] st2dim = (string[,]) o2dim;

//建立乙個1維int32陣列(值型別)

int32 ildim = new int32[5];

//不能把值型別的陣列轉換為其他任何型別,編譯器報錯error cs0030: 不能將'int型別轉換為 object'

object oldim = (object) ildim;

//建立乙個新的陣列,然後使用array.copy將陣列中的每乙個元素強制裝換為目標陣列中的元素型別

//下面的**建立了乙個陣列,其中包含的是對已裝箱的int32的應用

object obldim = new object[ildim.length];

array.copy(ildim, obldim, ildim.length);

copy方法能執行一下轉換:

1、把值型別的元素裝箱為引用型別的元素,比如將乙個int32賦值為乙個object

2、將引用型別的元素拆箱為值型別的元素,比如將乙個object賦值為乙個int32

3、加寬clr基元型別,比如將元素從乙個int32賦值到double中

4、在兩個陣列型別之間進行複製時,如果兩個陣列的型別是比匹配的,將進行向下型別轉換

注意:1、如果只是需要把陣列中的某些值複製的另外乙個型別相同的陣列,那使用system.bufferde blockcopy方法,

他的執行速度快,只支援基元型別

2、如果需要可靠地把乙個陣列中的元素賦值到另乙個陣列中,那使用system.array.constrainedcopy方法,但必須

保證源、目標陣列的型別一致

非安全陣列

using system;

public static class program

private static void stackallocdemo()

console.writeline(new string(pc, 0, width));}}

private static void inlinearrarydemo()

console.writeline(new string(ca.characters, 0, width));}}

internal unsafe struct chararray

}

C學習筆記 陣列

陣列是一組具有相同資料型別的變數集合,這裡要注意兩點,陣列只能儲存相同的資料型別和陣列的記憶體是連續的,這位陣列和指標的聯絡奠定了基礎。定義及初始化 一維陣列指的是只有乙個下標的陣列,它用來表示一組具有相同型別的資料 其格式為 型別說明符 陣列名 常量表示式 e.g.int arr 3 上式表達的是...

C語言筆記 陣列

筆記內容為自學郝斌老師c語言課程時所作 如果對於基礎知識點有遺忘可以借鑑下 遼寧工業大學 電子202 宋家盛 如有錯誤,可通過jff 16 163.com聯絡 陣列 陣列型別 陣列名 元素個數 例如 int a 2 元素表示 a 0 1 a 2 2 即a i 表示第i 1個元素 為什麼使用陣列?1....

c語言課程筆記 陣列

c語言課程筆記 陣列 知識總結 一 一維陣列的定義和初始化 1.構成陣列的每個資料項稱為陣列元素 c語言通過陣列的下標實現對陣列元素的訪問。2.注意 c語言中陣列的下標都是從0開始的。3.注意,引用陣列元素時下標可以是整型變數,例如引用score的第i個元素用score i 但在定義陣列時不能使用變...