Класс System::Array (Система::Массив)
Результат работы программы приведен ниже. Управляемый прямоугольный двумерный массив содержит элементы типа String*, а неуправляемый – элементы типа int. Однако управляемый массив может также содержать и элементы неуправляемых типов, между тем как неуправляемый массив – лишь элементы неуправляемых типов.
managed ID array of int 01234 managed 2D array of Strings 012 10 11 12 unmanaged 2D array of int 0 1 2 10 11 12
Перевод такой:
управляемый одномерный массив int 01234 управляемый двумерный массив Строк 0 1 2 10 11 12 неуправляемый двумерный массив int 0 1 2 10 11 12
Приведем еще один пример, в котором сравнивается использование массива массивов (синтаксис [ ] [ ]) и прямоугольного двумерного массива (синтаксис [, ]). На этот раз, ради более корректного сравнения, оба массива содержат элементы типа int.
//Array2.срр #using <mscorlib.dll> using namespace System; // использовать пространство имен Система; void main(void) { Console::WriteLine("Rectangular array using [,]"); // ("Использование прямоугольного массива [,] "); int rect2DArray [,] = new int _gc [3.41; // сборщик мусора – // управляемый for(int row=0; row< rect2DArray › GetLength(0); row++) // по строкам { for(int col=0; col< rect2DArray › GetLength(1); col++) // по столбцам { rect2DArray [row,col] = row*10 + col; // rect2DArray [строка, столбец] = row*10 + столбец; Console::Write (rect2DArray [row, col]); // Запись:: (rect2DArray [строка, столбец]); Console::Write("\t"); // Запись } Console::WriteLine(); } Console::WriteLine("Array of arrays using [][]"); // ("использование массива массивов [] [] "); int arrayOfArray[3][4]; // неуправляемый for(int row=0; row<3; row++) // по строкам { for(int col=0; col<4; col++) // по столбцам { arrayOfArray[row][col] = row*10 + col; // arrayOfArray [строка] [столбец] = row*10 + столбец; Console::Write(arrayOfArray[row][col]); // Запись:: (arrayOfArray [строка] [столбец]); Console::Write("\t"); // Запись } Console::WriteLine(); } >
Программа напечатает:
Rectangular array using [,] 0 1 2 3 10 11 12 13 20 21 22 23 Array of arrays using [][] 0 1 2 3 10 11 12 13 20 21 22 23
Перевод такой:
Использование прямоугольного массива [] 0 1 2 3 10 11 12 13 20 21 22 23 Использование массива массивов [] [] 0 1 2 3 10 11 12 13 20 21 22 23
На рис. 3.1 и 3.2 показано размещение в памяти элементов массива массивов (объявленного с помощью синтаксиса [ ] [ ]) и прямоугольного двумерного массива (объявленного с помощью синтаксиса [, ]), использовавшихся в предыдущем примере.
Рис. 3.1. Размещение в памяти прямоугольного массива
Рис. 3.2. Размещение в памяти массива массивов