Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Повторяем массивы

Читайте также:
  1. Восприятие повторяемости.
  2. Двумерные массивы
  3. Двумерные массивы
  4. МАССИВЫ
  5. МАССИВЫ
  6. Многомерные массивы
  7. Многомерные массивы

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

Что такое массив? Все достаточно просто: если вы четко понимаете, что такое переменная, то и с понятием массива сложностей не должно возникнуть. А как вы знаете, переменная - это объект, который способен хранить в себе значение определенного типа. В С++ используется строгая типизация данных, поэтому каждая переменная (объект) может хранить данное (значение) только определенного типа. Тип, для которого будет предназначаться переменная, указывается при ее объявлении. Типы, как мы уже говорили, могут быть целочисленными (int со всеми его разновидностями, такими как short int, long int, unsigned), дробными (float, double), символьными и строковыми (char и string соответственно), булевыми или, как еще иногда говорят, логическими (bool).

Теперь отвечу на вопрос, который задал в начале предыдущего абзаца. Массив, в свою очередь - это, так сказать, оболочка, объединяющая определенное количество переменных строго одного типа. То количество переменных, которое созданный массив будет объединять, задается при объявлении и указывается в квадратных скобках.

1.int aNumbers[7];

Выше мы видим объявление массива - оболочки, объединяющей определенное количество переменных в одно имя. В нашем случае общее имя этих переменных, т.е. массива - aNumbers. В данном случае я используя для указания имени префикс a, сообщающий о том, что мы работаем с массивом (на англ. массив - array). Это делается для удобства. Встречаясь в коде с переменными, имеющими в своем имени подобный префикс, вы будете четко понимать, что она из себя представляет. Само имя тоже нужно задавать, исходя из того, какую "миссию" этот объект будет выполнять в программе.

Немного отвлекся - продолжаем. В нашем случае массив в себе объединяет ровно семь переменных, типа int (целые числа). Переменные, содержащиеся в массиве, обычно называют ячейками массива или просто элементами. Для доступа к элементам массива, используется доступ по индексу. Т.е. для того, чтобы, к примеру, обратиться ко второму элементу массива aNumbers, нужно использовать такую запись

1.aNumbers[1] = 4;

Мы обратились ко второму элементу массива aNumbers и присвоили ему значение 4. Если подзабыли, то напомню, что счет элементов массива в любом языке программирования начинается с нуля. Т.е., если элементов семь, то для обращения к ним нужно использовать индексы: 0, 1, 2, 3, 4, 5, 6. Эту особенность работы с массивами нужно запомнить раз и навсегда. Довольно часто новички допускают ее, тем самым выходя в своих программах за пределы массива (эта ошибка получила название - "ошибка на единицу"). Дело в том, что язык С++ настолько гибкий, что позволяет в своих программах выходить за границы массива, не выдавая при этом явной ошибки при компиляции программ. Некоторые профессионалы пользуются этой возможностью в определенных случаях. Для новичков же эта возможность выхода за границы, является причиной большого количества ошибок, допускаемых при работе с массивами. Поэтому здесь нужно быть осторожным. Порой можно сидеть целый день с программой и не понимать, что в ней не так и почему она выдает совершенно непредсказуемый результат. Причина тривиальна - выход за пределы массива. Таким образом, можно залезть в иные переменных, которые хранят свои значения по соседству в памяти, и ненароком повредить их, вызвав тем самым дополнительные ошибки.

Также напомню, что само имя массива, является указателем на его первый элемент. А так как все элементы массива расположены в памяти компьютера строго последовательно, то имя массива указывает на начало массива в памяти компьютера. Индекс, как я уже сказал, указывает на тот элемент, в этой последовательности, к которому мы хотим обратиться (будь-то считать его значение, либо задать иное).

Для наглядности набросал вот такую небольшую программку, которая демонстрирует то, что имя массива, указывает на его начало, т.е. на его первый элемент. Смотрим код

01.#include <iostream>

02.

03.using namespace std;

04.

05.int main()

06.{

07. int aNumber[10] = {3, 5, 11, 15, 18, 21, 22, 28, 36, 43};

08. int element;

09.

10. element = *aNumber;

11.

12. cout << "First element of aNumber = " << element << endl;

13.

14. return 0;

15.}

Результат работы программы:

Я не зря сказал - указывает. Т.е. имя массива - это указатель на место в памяти, в котором находится первая переменная массива. Указатель содержит не саму переменную, а лишь адрес ее ячейки, по которому она расположена в памяти компьютера. Не будем углубляться в это, т.к. это отдельная тема про указатели. Скажу лишь, что в нашем примере указатель разыменовывается с помощью (*). Благодаря чему, он передает значение, на которое указывает. В нашем случае он его присваивает переменной element, которую мы затем будем выводить на экран. Думаю здесь все относительно понятно.

Итак, основные моменты повторили. Теперь будем говорить непосредственно о двумерных массивах в С++.


Дата добавления: 2015-08-18; просмотров: 39 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ПРИЧИНА-СЛЕДСТВИЕ| Говорим о двумерных массивах

mybiblioteka.su - 2015-2024 год. (0.008 сек.)