2011-11-15 54 views
1

我怎樣才能使現有的數組的數組索引不使用指針e.g如何使陣列中現有的數組的索引,C#

float[] currentNode = new float[12] 
float[] neighbour = new float[12] 

neighbour[8] = new float[12] 
neighbour[8] = currentNode; 

and can access with neighbour[8][1] 

另一種選擇是使用指針的東西。

float *pointer; 
int []array = new int[12]; 
pointer = &array[0]; 

neighbour[8] = pointer 

那麼第一個解決方案可能不改變我的兩個數組?其他解決方案? 。

回答

3

你不能那樣做。你有一個float值的數組,而不是一個數組數組。

這意味着您不能在數組中分配一個元素(其中包含一個浮點值),該值是一個數組。

你必須重新定義的變量爲:

float[][] neighbour = new float[12][]; 

這將聲明一個數組的數組,這意味着相鄰陣列的每個元件可以容納不同的長度,或不陣列(null陣列 - 參考)。

如果要聲明一個矩陣,你可以做這樣的:

float[,] neighbour = new float[12, 8]; 
+0

我可以用它使用指針然後,BCZ我的整個代碼正在使用這兩個數組,我不wana更改它..我不能指出具體的[8]索引指針數組?並通過數組訪問它[8] .pickSomeValue – Rony

+0

不,你不能。該數組保存浮點值,而不是指針。你必須改變現有的代碼。 –

0

你也可以使用泛型:

List<List<float>> numbers = new List<List<float>>(); 
numbers.Add(new List<float>()); 
numbers.Add(new List<float>()); 
numbers[0].Add(2.3); 
numbers[0].Add(5); 
numbers[0].Add(8.74); 
numbers[1].Add(6.8); 
numbers[1].Add(9.87); 
float aNumber = numbers[1][0]; //6.8 
float anotherNumber = numbers[0][2]; //8.74