C 陣列簡單知識

2021-09-27 04:36:41 字數 1924 閱讀 4338

最近在學習c#,由於之前學習了c++,發現在c#與c++在陣列的操作中有較大的不同,所以總結一下加深記憶。

例如宣告乙個一維的int陣列:

int number;
宣告乙個二維int陣列:

int [,]tnumber;
宣告乙個三維陣列(以此類推):

int [,,] snumber;
隨後建立陣列:

number=new int [4];

tnumber=new int [4,6]

snumber=new int [4,5,6];

不像c++中使用int number [4] 。

可以在陣列建立時使用列表初始化,如:

int number=new int [4];//大括號內的值也可以不是常量,可以是執行時計算的值

建立隱式型別的陣列:var names=new ;//保證都是相同的值型別

陣列中定義了length屬性,表示陣列中元素的個數。

除了使用傳統的for迴圈來遍歷陣列外,還可以使用foreach來遍歷陣列。

例項如下:

int pins=new int[4];

foreach(int pin in pins)

有以下

注意事項:

foreach總是遍歷整個陣列,並且順序固定;

最重要的是:如果要改變陣列元素的值,必須使用for迴圈,因為foreach中用於遍歷的變數是每個陣列元素的唯讀拷貝。

c++中不能返回乙個陣列,但c#中可以。

例子如下:

public int  getdata()

陣列是引用型別,如下的例子兩個陣列引用同乙個記憶體

int pins=new int [4];

int copy=pins;//兩個陣列引用同乙個記憶體,對copy進行的操作也會在pins中體現出來

system.array類提供了一下方法用於複製陣列:

例子如下:

int pins=new int [4];

int copy=new int [pins.length];

pins.copyto(copy,0)//第二個引數表示複製時的起始位置

為了減少不必要的空間浪費,c#中可以建立交錯陣列,交錯陣列每一列的長度可以不相等。

例子如下:

int items=new int [4];

int column0=new int [3];

int column1=new int [5];

int column2=new int [10];

int column3=new int [15];

items[0]=column0;

items[1]=column1;

items[2]=column2;

items[3]=column3;

如果乙個方法需要獲取任意數量、任意型別的引數,就可以考慮使用引數陣列,關鍵字為params

例子如下:

//輸入任意數量的整數,從中找到最小值

public int min(params int pins]

{int min;

min =pins[0];

foreach(int pin in pins)

{if (pin若要接收任意型別的引數,則使用params object。

使用params需注意:

params只能用於一維陣列。

是否有params關鍵字不能區分兩個方法。

不能為引數陣列使用ref或out關鍵字。

引數陣列必須是方法的最後一項引數

c 陣列簡單知識補充

陣列是引用型別,不論其元素是值型別還是引用型別。c 中陣列物件實現的各個介面 定義了淺拷貝的能力,因此陣列可以進行淺拷貝 system.icloneable icollection介面的子代,使用介面程式設計減輕耦合,該介面只定義了一些方法,有索引器,查詢元素位置,插入資料,移除索引位置資料這個方法...

陣列的簡單知識

陣列 要想定義多個重複型別的變數,那麼使用陣列是乙個很好的方法,乙個陣列裡面存放的資料的型別必須是一樣的。即同乙個資料型別。一維陣列 定義格式 資料型別 陣列名 null 陣列名 new 資料型別 長度 可以合併資料型別 陣列名 new 資料型別 長度 或者 資料型別 陣列名 int sore nu...

C 陣列知識總結

是一種資料型別,可儲存一組資料 語法 資料型別 陣列名 宣告型別 int score 儲存成績,整型 int height 儲存高度,浮點型 int name 儲存姓名,字串型 一旦宣告了陣列的大小,就不能修改 語法 陣列名 new 資料型別 陣列長度 在宣告陣列時便分配陣列空間的兩種方法 法1 資...