Шаг 48.
Язык программирования C#. Начала
Массивы. Одномерные массивы

    На этом шаге мы рассмотрим понятие, способ задания и доступ к элементам такого массива.

    Массив - это набор элементов одного типа, которые объединены общим именем. Переменные, входящие в массив, называются элементами массива. Поскольку одно и то же имя (имя массива) "применяется" сразу к нескольким переменным, то эти переменные нужно как-то идентифицировать. Идентификация выполняется с помощью индекса или индексов. Индекс - это целое число. Количество индексов, необходимых для однозначной идентификации переменной в массиве, определяет размерность массива. Под размером массива обычно подразумевают общее количество элементов в массиве. Под размером массива для данной размерности имеют в виду количество значений, которые может принимать индекс, соответствующий данной размерности. Самые простые - одномерные массивы, в которых для идентификации элемента в массиве нужно указать всего один индекс. Знакомство с массивами начнем именно с одномерных массивов. То есть далее в этом разделе речь идет об одномерных массивах.

    Мы уже выяснили, что массив - это набор переменных. Возникает естественный вопрос: как получить доступ к этому набору? Ответ состоит в том, что доступ к массиву получают с помощью специальной переменной, которая называется переменной массива. Как и обычную переменную, переменную массива перед использованием следует объявить. При объявлении переменной массива указывают идентификатор типа элементов массива, после него указываются пустые квадратные скобки и имя переменной массива. То есть шаблон объявления переменной массива такой:

  тип[] переменная

    Например, если мы хотим объявить переменную массива с названием nums и предполагается, что массив будет состоять из целочисленных значений типа int, то переменная массива объявляется командой:

  int[] nums;      .
Если бы мы объявляли переменную массива с названием symbs и массив предполагался состоящим из символьных значений, то команда объявления такой переменной выглядела бы как:
  char[] symbs;      .

    Но создание (объявление) переменной массива не означает создания массива. Другими словами, даже если мы объявили переменную массива, сам массив от этого не появляется. Его еще нет. Массив нужно создать.

    Для создания массива используется оператор new. После оператора new указывается идентификатор типа, соответствующий типу элементов создаваемого массива, а в квадратных скобках после идентификатора тина указывается размер массива. Шаблон для команды создания массива имеет такой вид:

  new тип[размер]

    Например, если мы хотим создать одномерный целочисленный массив из 12 элементов, то команда создания такого массива выглядит как:

  new int [12]    .
Чтобы создать массив из 10 элементов символьного типа, используем команду:
  new char [10]      . 
Остается открытым вопрос о том, как переменная массива связана с собственно массивом. Ответ очень простой: переменная массива ссылается на массив. Можно сказать и иначе: значением переменной массива может быть адрес массива в памяти.


Что понимать под "адресом массива" и как этот адрес используется, более детально будем обсуждать в шагах, посвященных работе с указателями. Пока же нам достаточно самых общих представлений о том, что такое "адрес массива".

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

  тип[] переменная;
  переменная = new тип(размер);

    'Го есть задача по созданию массива состоит из двух этапов:

    Эти два этапа можно объединить и воспользоваться такой командой:

  тип[] переменная = new тип[размер];

    Схема реализации одномерного массива проиллюстрирована на рисунке 1.


Рис.1. Схема реализации одномерного массива

    После того как массив создан, к его элементам можно обращаться для присваивания и считывания значений. Делается это достаточно просто: после имени массива (имя массива отождествляется с переменной массива, которая ссылается на этот массив) в квадратных скобках указывается индекс элемента. Важно помнить, что индексация элементов всегда начинается с нуля. 11оэтому у первого элемента индекс 0, у второго элемента индекс 1 и так далее. Индекс последнего элемента в массиве на единицу меньше размера массива. А размер массива можно определить с помощью свойства Length. Например, если мы имеем дело с одномерным массивом nums, то значением выражения nums.Length является количество элементов в массиве nums. Ссылка на первый элемент в массиве nums выглядит как nums[0], ссылка на второй элемент - это nums[1], а ссылка на последний элемента массива nums дается выражением nums[nums.Length-1].

    На следующем шаге мы продолжим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг