Иллюстрированный самоучитель по Architecture .NET

Класс 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 показано размещение в памяти элементов массива массивов (объявленного с помощью синтаксиса [ ] [ ]) и прямоугольного двумерного массива (объявленного с помощью синтаксиса [, ]), использовавшихся в предыдущем примере.

Иллюстрированный самоучитель по Architecture .NET › Программирование на управляемом C++ › Класс System::Array (Система::Массив)
Рис. 3.1. Размещение в памяти прямоугольного массива

Иллюстрированный самоучитель по Architecture .NET › Программирование на управляемом C++ › Класс System::Array (Система::Массив)
Рис. 3.2. Размещение в памяти массива массивов

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.