Ch4nee Ответов: 1

C# массивы массива - справка


Привет всем,так что я только начал изучать C#, я новичок в программировании и не имею никаких прошлых знаний о каких-либо языках программирования.Я изучаю C# из книги RB Whitaker - The C# Players Guide.
И я подошел к главе,где говорится о массивах,я не совсем понимаю этот код, он говорит: "стоит кратко описать, как вы могли бы смотреть на каждый элемент в этих более сложных массивах. Для массива массивов или зубчатого массива это может выглядеть следующим образом:
int[][] matrix = new int[4][];
matrix[0] = new int[2];
matrix[1] = new int[6];
// Continue filling in values for the jagged array...
for(int row = 0; row < matrix.Length; row++)
{
for(int column = 0; column < matrix[row].Length; column++)
{
Console.Write(matrix[row][column] + " "); // Each item in the row separated by spaces
}
Console.WriteLine(); // Rows separated by lines
}

Это код,надеюсь, кто-нибудь сможет его кратко объяснить.Спасибо.

Что я уже пробовал:

Насколько я понимаю,в первом цикле for создается переменная строка и ей присваивается 0,но что такое матрица?Длина должна быть здесь, в этих массивах массивов?? Считает ли он 4 массива внутри этого массива или каждый отдельный элемент внутри этих массивов,это сбивает меня с толку...Мой мозг блокируется в этот момент,и я не понимаю никакого кода впереди этого,поэтому я был бы благодарен, если бы кто-то мог кратко объяснить мне этот код, еще раз спасибо.

1 Ответов

Рейтинг:
7

CPallini

Это зубчатый массив, то есть массив, содержащий массивы разных размеров. Если вы выполняете просьбу автора о замечании, то вы можете легко увидеть, что происходит:

int[][] matrix = new int[4][];
  matrix[0] = new int[2];
  matrix[1] = new int[6];
  // values for the jagged array
  // step 1, complete the 'array of arrays'
  matrix[2] = new int[1];
  matrix[3] = new int[3];
  // step 2, assign values to all the items of all the arrays.
  matrix[0][0] = 1; matrix[0][1] = 5;
  matrix[1][1] = 4; matrix[1][1] = 2; matrix[1][2] = 4; matrix[1][3] = 2; matrix[1][4] = 8; matrix[1][5] = 4;
  matrix[2][0] = 7;
  matrix[3][0] = 9; matrix[3][1] = 4; matrix[3][2] = 7;

  for (int row = 0; row < matrix.Length; row++)
  {
    for (int column = 0; column < matrix[row].Length; column++)
    {
      Console.Write(matrix[row][column] + " "); // Each item in the row separated by spaces
    }
    Console.WriteLine(); // Rows separated by lines
  }


Ch4nee

О,Спасибо, приятель, я наконец-то понял,что в этом случае матрица[строка][столбец], строка на самом деле должна быть одним массивом в матрице, записанной в строке, а столбец-это просто ее элементы...спасибо снова

CPallini

Добро пожаловать.