Как объявить массив для инт и флоат
КАК победить массив?
Вопрос: КАК применяются массивы?
Наверное, если раньше вы не встречались с этим словом, само понятие «массив» у вас вызывает исключительно архитектурные ассоциации: «жилой массив». Это своего рода набор зданий, расположенных на некоторой территории. Массив в программировании на любом языке — это набор данных одного типа (int, float, double. ), также объединённых на одной территории. КАК? Сейчас расскажу.
До сих пор мы задавали отдельно переменные: int a=9; float f=4.14, char *str=»Машина». Однако, вы удивитесь, когда я скажу, что массивы мы давно уже используем. А вы-то и не знали. Когда мы задавали строчку:
мы объявляли массив типа char, иными словами резервировали некоторую область памяти, длиной в 6 ячеек или клеточек (0, 1, 2, 3, 4, 5), в которую записывали символы типа char. В каждой клеточке может храниться только один символ. В любой момент мы могли обратиться к любому символу, используя индексацию, номер этой клеточки. Так, команда:
даст нам на экране букву: «ш». Если же мы напишем такое выражение:
то в строке str (массиве str), будет записано: «пашина».
Идём дальше. Используя индексацию, мы можем вывести слово наоборот:
Меняя переменную цикла i от 0 до длины строки str -1, то есть до 6-1=5, мы последовательно выводим её содержимое на экран в столбик.
Так же можно осуществить и заполнение массива значениями:
Учтите, что число элементов массива меняться не может! Чтобы знать свои права, рассмотрим остальные свойства массивов.
Вопрос: КАКие свойства у массивов?
Свойства массивов:
1. В массиве хранятся отдельные значения, которые называются элементами.
2. Все элементы массива должны быть одного типа данных (int, float, char*. ).
3. Все элементы хранятся в памяти последовательно, и первый имеет нулевой адрес.
4. Имя массива является константой и содержит адрес первого элемента массива.
Массивы могут состоять не только из символов, но и из строк. Представьте себе, что вы пишите игру-говорилку, где игрок попадает в гости к симпатичной девушке, которая вступает с ним в диалог. От того, как он ответит на них, зависит обломится ему что-то или нет. Поскольку мы сами не можем говорить за электронную девушку, должен быть какой-то набор фраз, из которого случайным образом выбирается какая-то одна. Программным языком выражаясь, мы создаём массив строк. Выбирая случайным образом индекс i, мы выводим на экран фразу: cout i может быть и 0 и 20 и 40, поэтому вопросы и высказывания девушки не предсказуемы. А задать такой массив можно так:
Обратите внимание, что объявляя массив, мы помещаем его элементы в фигурные скобки, разделяя их запятыми. В конце обязательно надо поставить ;
Вопрос: КАК объявляются и применяются массивы float?
Массивы float
Пример1. Найти среднее арифметическое элементов заданного массива.
#include
#define TEN 10 //так объявляются константы. Менять значения TEN после этого объявления мы не имеем права
//Здесь же константе TEN мы присвоили значение 10
void main()
float a[TEN], s=0; //мы объявили массив типа float из TEN(десяти) элементов и переменную s
int i; //переменная цикла
printf( «Введите массив: » );
for(i=0; i scanf(«%d», m[i]); /*последовательный ввод массива*/
for(i=0; i s = s+a[i]; /*нахождение суммы элементов*/
s=s/TEN; //нахождение среднего арифметического делением суммы на TEN, то есть на 10
printf( «s = %8.2f» , s);
>
Как видите, работа с массивами почти не отличается от работы с обычными числами. Удобно представлять массивы, как наборы чисел. Как правило инициализация, ввод и вывод элементов массива осуществляются через цикл for, так как в данном случае заранее известно число элементов.
Вопрос: КАК ещё объявляются массивы?
Вот примеры объявления массивов разных типов:
char masc4[]=»Rock»; //когда заранее не известно сколько элементов
Как видите, массивы символов можно объявлять четрьмя разными способами, и это не предел.
Вопрос: КАК с помомщью массива строк заставить компьютер говорить?
Игра-«Говорилка».
Хочется верить, что я заинтриговал вас словами об игре-говорилке, в которой ведётся диалог с компьютерной девушкой. В своё время я сам написал такую игру, под названием «Ночное рандеву». Теперь ваша очередь. Думаю, когда я дам вам в руки средства Windows, вы без труда сможете украсить свою игру полями ввода, кнопками, картинками и цветами. Пока же предлагаю вам заготовку. Строковый массив, элементы которого выводятся случайно. Заодно мы поговорим о случайных числах.
#define SIZE 4
srand(time(NULL)); //обнуляем генератор случайных чисел
//задаём цикл, который работает
do i=rand()%4;
cout cin>>ans;
>while(strncmp(ans, «exit»,10)!=0); //пока пользователь не введёт слово «exit»
Вопрос: КАК сортировать элементы массива? Метод пузырька.
Метод «пузырька».
Часто при хранении разного рода информации сталкиваются с проблемой её сортировки. Пусть мы храним фамилии целого взвода солдат в базе данных. Мы бы хотели, чтобы каждый раз они выводились на экран в алфавитном порядке. Тем не менее, введены они были, возможно вразнобой, и, кроме того, время от времени в базу данных добавляют новые фамилии, а старые удаляют. Программа же должна работать всегда. Есть много разных алгоритмов сортировки. Самый простой — метод пузырька, потому что наименьшее значение постоянно «всплывает», двигаясь к вершине массива, как пузырь воздуха двигается к поверхности воды. Для примера можем рассмотреть не строки, а простые числа типа int.
void main()
int mas[SIZE]=; //массив целых чисел
int hold; //переменная — буфер
if(mas[i]>mas[i+1]) //Если предыдущее число больше последущего
hold=mas[i]; //предыдущее записывается в буфер
mas[i]=mas[i+1]; //в предыдущее записывается число из последующего
mas[i+1]=hold; //в последующее записывается число из буфера
>
Существуют также двумерные и n-мерные массивы, применение которых требуется реже, чем одномерных массивов. Их мы рассмотрим в разделе «структуры данных».
Читать про массивы в теории — очень скучно. Гораздо приятнее использовать их на практике. Дав вам сейчас этот инструмент, я нераз буду слышать слова вашей благодарности за то, что рассказал про них.
Как передать массив в функцию? c++
а что именно вы хотите сделать. Просто в C в отличии от Java у массива вы никак не узнаете размер. Поэтому есть смысл задуматься что именно надо. И да, как вы в классе объявили array ? если как float * то скомпилируется а если как float[] то это само по себе не сильно правильно и значит другое.
12 июн 2016 в 9:05
@pavel, sizeof(array)/sizeof(array[0]) ?
12 июн 2016 в 9:06
В С++ встроенные массивы очень ограничены по возможностям, поэтому удобнее использовать std::vector, который знает свой размер.
12 июн 2016 в 9:06
@Herrgott это работает до первой передачи в функцию. В функции type[] преобразовывается в type * (можете проверить).
12 июн 2016 в 9:07
@vladimir хорошо, можете пример в ответ написать? С передачей массива в сырую, так скажем
12 июн 2016 в 9:07
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Массив в C++11 бывает фиксированного размера array и резинового размера vector .
Оба массива лучше всего передавать по константной ссылке, если их модифицировать не нужно:
void foo(const vector& arr); void foo(const array& arr);
Или просто по ссылке, если модифицировать таки нужно:
void foo(vector& arr); void foo(array& arr);
Также, отличной практикой будет передавать не массив, а пару итераторов — на начало и на конец нужного диапазона:
void foo(const vector::iterator& begin,const vector::iterator& end);
Ну и пример того, что вы попытались сделать:
#include #include #include using std::vector; using std::ostream_iterator; using std::copy; using std::cout; using std::endl; void foo(const vector& a) < ostream_iteratorout_it (cout,", "); copy ( begin(a), end(a), out_it ); cout int main() < foo(); return 0; >
Отслеживать
ответ дан 12 июн 2016 в 9:07
22.2k 2 2 золотых знака 33 33 серебряных знака 53 53 бронзовых знака
а итераторы разве безопасно передавать? а если произойдёт расширение vector они же станут невалидные.
12 июн 2016 в 9:08
мне надо передавать элементы разного значения и разного количества в каждый объект этого типа, в котором функция. Кажется, этот ответ неверный
12 июн 2016 в 9:10
@pavel зависит от того, что вы собираетесь делать. Если обрабатывать данные в массиве — передавайте итераторы. Если вам нужно где-то иметь указатель на массив, вам стоит сделать этот указатель умным.
12 июн 2016 в 9:10
@gbg, почему begin и end работают без std:: ?
12 июн 2016 в 14:34
@SergeyPestov — сам удивляюсь.
12 июн 2016 в 15:11
С использованием вектора:
// Это поле вашего объекта, которое будет хранить массив, передаваемый в SetArrray std::vector Foo::array; // Это метод, который принимает массив для сохранения в поле array void Foo::SetArray(const std::vector& array) < this->array = array; > // Это вызов SetArray который установит массив some_class_pointer->SetArray()
Ну а дальше используйте поле array , например получите первый элемент как array[0] , или размер массива как array.size() .
Как бонус — никаких ручных new/delete и потенциальных утечек памяти.
Массивы
В структуре данных массива можно хранить несколько переменных одного типа. Чтобы объявить массив, следует указать тип его элементов. Если требуется, чтобы массив мог хранить элементы любого типа, можно указать object в качестве его типа. В унифицированной системе типов C# все типы, стандартные и определяемые пользователем, ссылочные типы и типы значений напрямую или косвенно наследуются из Object.
type[] arrayName;
Массив имеет следующие свойства:
- Массив может быть одномерным, многомерным или многомерным.
- Число измерений задается при объявлении переменной массива. Длина каждого измерения устанавливается при создании экземпляра массива. Эти значения нельзя изменить во время существования экземпляра.
- Массив массивов является массивом массивов, и каждый массив элементов имеет значение null по умолчанию.
- Массивы индексируются от нуля: массив с n элементами индексируется от 0 до n-1 .
- Элементы массива могут иметь любой тип, в том числе тип массива.
- Типы массивов — это ссылочные типы, производные от абстрактного базового типа Array. Все массивы реализуют IList и IEnumerable. Для итерации по массиву можно использовать оператор foreach. Одномерные массивы также реализуют IList и IEnumerable .
Элементы массива можно инициализировать в известные значения при создании массива. Начиная с C# 12, все типы коллекций можно инициализировать с помощью выражения Collection. Элементы, которые не инициализированы, имеют значение по умолчанию. Значение по умолчанию — это 0-разрядный шаблон. Все ссылочные типы (включая типы, не допускающие значение NULL), имеют значения null . Все типы значений имеют 0-разрядные шаблоны. Это означает, Nullable.HasValue что свойство имеет false значение, и Nullable.Value свойство не определено. В реализации Value .NET свойство создает исключение.
В следующих примерах создаются одномерные массивы, многомерные массивы и массивы массивов:
// Declare a single-dimensional array of 5 integers. int[] array1 = new int[5]; // Declare and set array element values. int[] array2 = [1, 2, 3, 4, 5, 6]; // Declare a two dimensional array. int[,] multiDimensionalArray1 = new int[2, 3]; // Declare and set array element values. int[,] multiDimensionalArray2 = < < 1, 2, 3 >, < 4, 5, 6 >>; // Declare a jagged array. int[][] jaggedArray = new int[6][]; // Set the values of the first array in the jagged array structure. jaggedArray[0] = [1, 2, 3, 4];
Одномерные массивы
Одномерный массив — это последовательность таких элементов. Доступ к элементу осуществляется через его индекс. Индекс — это порядковое положение в последовательности. Первый элемент в массиве находится в индексе 0 . Для создания одномерного массива используется оператор new и указывается тип элементов массива и число элементов. В следующем примере объявляются и инициализируется одномерные массивы:
int[] array = new int[5]; string[] weekDays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; Console.WriteLine(weekDays[0]); Console.WriteLine(weekDays[1]); Console.WriteLine(weekDays[2]); Console.WriteLine(weekDays[3]); Console.WriteLine(weekDays[4]); Console.WriteLine(weekDays[5]); Console.WriteLine(weekDays[6]); /*Output: Sun Mon Tue Wed Thu Fri Sat */
Первое объявление объявляет неинициализированный массив из пяти целых чисел от array[0] до array[4] . Элементы массива инициализируются до значения по умолчанию для типа элемента. Для целых чисел это 0 . Второе объявление объявляет массив строк и инициализирует все семь значений этого массива. Оператор foreach выполняет итерацию элементов массива weekday и выводит все значения. Для одномерных массивов оператор обрабатывает элементы в увеличении порядка индексов foreach , начиная с индекса 0 и заканчивая индексом Length — 1 .
Передача одномерных массивов в качестве аргументов
Инициализированный одномерный массив можно передать в метод. В следующем примере массив строк инициализируется и передается в качестве аргумента в метод DisplayArray для строк. Этот метод отображает элементы массива. Затем метод ChangeArray размещает элементы массива в обратном порядке, а метод ChangeArrayElements изменяет первые три элемента массива. После возврата каждого метода метод DisplayArray показывает, что передача массива по значению не препятствует изменению элементов массива.
class ArrayExample < static void DisplayArray(string[] arr) =>Console.WriteLine(string.Join(" ", arr)); // Change the array by reversing its elements. static void ChangeArray(string[] arr) => Array.Reverse(arr); static void ChangeArrayElements(string[] arr) < // Change the value of the first three array elements. arr[0] = "Mon"; arr[1] = "Wed"; arr[2] = "Fri"; >static void Main() < // Declare and initialize an array. string[] weekDays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; // Display the array elements. DisplayArray(weekDays); Console.WriteLine(); // Reverse the array. ChangeArray(weekDays); // Display the array again to verify that it stays reversed. Console.WriteLine("Array weekDays after the call to ChangeArray:"); DisplayArray(weekDays); Console.WriteLine(); // Assign new values to individual array elements. ChangeArrayElements(weekDays); // Display the array again to verify that it has changed. Console.WriteLine("Array weekDays after the call to ChangeArrayElements:"); DisplayArray(weekDays); >> // The example displays the following output: // Sun Mon Tue Wed Thu Fri Sat // // Array weekDays after the call to ChangeArray: // Sat Fri Thu Wed Tue Mon Sun // // Array weekDays after the call to ChangeArrayElements: // Mon Wed Fri Wed Tue Mon Sun
Многомерные массивы
Массивы могут иметь несколько измерений. Например, следующие объявления создают четыре массива: два имеют два измерения, два имеют три измерения. Первые два объявления объявляют длину каждого измерения, но не инициализировать значения массива. Во втором двух объявлениях используется инициализатор для задания значений каждого элемента в многомерном массиве.
int[,] array2DDeclaration = new int[4, 2]; int[,,] array3DDeclaration = new int[4, 2, 3]; // Two-dimensional array. int[,] array2DInitialization = < < 1, 2 >, < 3, 4 >, < 5, 6 >, < 7, 8 >>; // Three-dimensional array. int[,,] array3D = new int[,,] < < < 1, 2, 3 >, < 4, 5, 6 >>, < < 7, 8, 9 >, < 10, 11, 12 >> >; // Accessing array elements. System.Console.WriteLine(array2DInitialization[0, 0]); System.Console.WriteLine(array2DInitialization[0, 1]); System.Console.WriteLine(array2DInitialization[1, 0]); System.Console.WriteLine(array2DInitialization[1, 1]); System.Console.WriteLine(array2DInitialization[3, 0]); System.Console.WriteLine(array2DInitialization[3, 1]); // Output: // 1 // 2 // 3 // 4 // 7 // 8 System.Console.WriteLine(array3D[1, 0, 1]); System.Console.WriteLine(array3D[1, 1, 2]); // Output: // 8 // 12 // Getting the total count of elements or the length of a given dimension. var allLength = array3D.Length; var total = 1; for (int i = 0; i < array3D.Rank; i++) < total *= array3D.GetLength(i); >System.Console.WriteLine($" equals "); // Output: // 12 equals 12
Для многомерных массивов элементы пересекаются таким образом, что индексы самого правого измерения увеличиваются сначала, а затем следующее левое измерение и т. д. до самого левого индекса. В следующем примере перечисляется как 2D, так и трехмерный массив:
int[,] numbers2D = < < 9, 99 >, < 3, 33 >, < 5, 55 >>; foreach (int i in numbers2D) < System.Console.Write($""); > // Output: 9 99 3 33 5 55 int[,,] array3D = new int[,,] < < < 1, 2, 3 >, < 4, 5, 6 >>, < < 7, 8, 9 >, < 10, 11, 12 >> >; foreach (int i in array3D) < System.Console.Write($""); > // Output: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
В массиве 2D можно считать левый индекс строкой и правым индексом в качестве столбца .
Однако с многомерными массивами, используя вложенный цикл, вы можете более контролировать порядок обработки элементов массива:
int[,,] array3D = new int[,,] < < < 1, 2, 3 >, < 4, 5, 6 >>, < < 7, 8, 9 >, < 10, 11, 12 >> >; for (int i = 0; i < array3D.GetLength(0); i++) < for (int j = 0; j < array3D.GetLength(1); j++) < for (int k = 0; k < array3D.GetLength(2); k++) < System.Console.Write($""); > System.Console.WriteLine(); > System.Console.WriteLine(); > // Output (including blank lines): // 1 2 3 // 4 5 6 // // 7 8 9 // 10 11 12 //
Передача многомерных массивов в качестве аргументов
Инициализированный многомерный массив можно передать в метод так же, как и одномерный массив. В следующем коде показано разделяемое объявление метода печати, который принимает в качестве аргумента двухмерный массив. Новый массив можно инициализировать и передать за один шаг, как показано в следующем примере. В следующем примере инициализируется двухмерный массив целых чисел, который передается в метод Print2DArray . Этот метод отображает элементы массива.
static void Print2DArray(int[,] arr) < // Display the array elements. for (int i = 0; i < arr.GetLength(0); i++) < for (int j = 0; j < arr.GetLength(1); j++) < System.Console.WriteLine("Element(,)=", i, j, arr[i, j]); > > > static void ExampleUsage() < // Pass the array as an argument. Print2DArray(new int[,] < < 1, 2 >, < 3, 4 >, < 5, 6 >, < 7, 8 >>); > /* Output: Element(0,0)=1 Element(0,1)=2 Element(1,0)=3 Element(1,1)=4 Element(2,0)=5 Element(2,1)=6 Element(3,0)=7 Element(3,1)=8 */
Массивы массивов
Массив массивов — это массив, элементы которого являются массивами и могут быть различных размеров. Многообразный массив иногда называется массивом массивов. Его элементы являются ссылочными типами и инициализированы в null . В следующих примерах показано, как объявлять и инициализировать массивы массивов, а также получать доступ к ним. Первый пример объявляется jaggedArray в одной инструкции. Каждый содержащийся массив создается в последующих инструкциях. Второй пример jaggedArray2 объявлен и инициализирован в одной инструкции. Массивы массивов и многомерные массивы можно смешивать. Последним примером jaggedArray3 является объявление и инициализация одномерного массива, содержащего три двухмерных элемента массива разных размеров.
int[][] jaggedArray = new int[3][]; jaggedArray[0] = [1, 3, 5, 7, 9]; jaggedArray[1] = [0, 2, 4, 6]; jaggedArray[2] = [11, 22]; int[][] jaggedArray2 = [ [1, 3, 5, 7, 9], [0, 2, 4, 6], [11, 22] ]; // Assign 77 to the second element ([1]) of the first array ([0]): jaggedArray2[0][1] = 77; // Assign 88 to the second element ([1]) of the third array ([2]): jaggedArray2[2][1] = 88; int[][,] jaggedArray3 = [ new int[,] < , >, new int[,] < , , >, new int[,] < , , > ]; Console.Write("", jaggedArray3[0][1, 0]); Console.WriteLine(jaggedArray3.Length);
Элементы массива должны быть инициализированы перед их использованием. Каждый из элементов является массивом. Кроме того, можно использовать инициализаторы для заполнения элементов массива значениями. При использовании инициализаторов не требуется размер массива.
В этом примере создается массив, элементы которого являются массивами. Все элементы массива имеют разный размер.
// Declare the array of two elements. int[][] arr = new int[2][]; // Initialize the elements. arr[0] = [1, 3, 5, 7, 9]; arr[1] = [2, 4, 6, 8]; // Display the array elements. for (int i = 0; i < arr.Length; i++) < System.Console.Write("Element(): ", i); for (int j = 0; j < arr[i].Length; j++) < System.Console.Write("", arr[i][j], j == (arr[i].Length - 1) ? "" : " "); > System.Console.WriteLine(); > /* Output: Element(0): 1 3 5 7 9 Element(1): 2 4 6 8 */
Неявно типизированные массивы
Можно создать неявно типизированный массив, в котором тип экземпляра массива выводится из элементов, указанных в инициализаторе массива. Правила для любой неявно типизированной переменной также применяются к неявно типизированным массивам. Дополнительные сведения см. в разделе Неявно типизированные локальные переменные.
В следующих примерах показано, как создать неявно типизированный массив:
int[] a = new[] < 1, 10, 100, 1000 >; // int[] // Accessing array Console.WriteLine("First element: " + a[0]); Console.WriteLine("Second element: " + a[1]); Console.WriteLine("Third element: " + a[2]); Console.WriteLine("Fourth element: " + a[3]); /* Outputs First element: 1 Second element: 10 Third element: 100 Fourth element: 1000 */ var b = new[] < "hello", null, "world" >; // string[] // Accessing elements of an array using 'string.Join' method Console.WriteLine(string.Join(" ", b)); /* Output hello world */ // single-dimension jagged array int[][] c = [ [1,2,3,4], [5,6,7,8] ]; // Looping through the outer array for (int k = 0; k < c.Length; k++) < // Looping through each inner array for (int j = 0; j < c[k].Length; j++) < // Accessing each element and printing it to the console Console.WriteLine($"Element at c[][] is: "); > > /* Outputs Element at c[0][0] is: 1 Element at c[0][1] is: 2 Element at c[0][2] is: 3 Element at c[0][3] is: 4 Element at c[1][0] is: 5 Element at c[1][1] is: 6 Element at c[1][2] is: 7 Element at c[1][3] is: 8 */ // jagged array of strings string[][] d = [ ["Luca", "Mads", "Luke", "Dinesh"], ["Karen", "Suma", "Frances"] ]; // Looping through the outer array int i = 0; foreach (var subArray in d) < // Looping through each inner array int j = 0; foreach (var element in subArray) < // Accessing each element and printing it to the console Console.WriteLine($"Element at d[][] is: "); j++; > i++; > /* Outputs Element at d[0][0] is: Luca Element at d[0][1] is: Mads Element at d[0][2] is: Luke Element at d[0][3] is: Dinesh Element at d[1][0] is: Karen Element at d[1][1] is: Suma Element at d[1][2] is: Frances */
В предыдущем примере обратите внимание, что с неявно типизированными массивами квадратные скобки не используются слева от инструкции инициализации. Кроме того, многомерные массивы инициализированы так new [] же, как и одномерные массивы.
При создании анонимного типа, содержащего массив, этот массив необходимо неявно типизировать в инициализаторе объекта типа. В следующем примере contacts представляет собой неявный типизированный массив анонимных типов, каждый из которых содержит массив с именем PhoneNumbers . Ключевое var слово не используется внутри инициализаторов объектов.
var contacts = new[] < new < Name = " Eugene Zabokritski", PhoneNumbers = new[] < "206-555-0108", "425-555-0001" >>, new < Name = " Hanying Feng", PhoneNumbers = new[] < "650-555-0199" >> >;
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Статические массивы в языке Си
При решении задач с большим количеством данных одинакового типа использование переменных с различными именами, не упорядоченных по адресам памяти, затрудняет программирование. В подобных случаях в языке Си используют объекты, называемые массивами.
Массив — это непрерывный участок памяти, содержащий последовательность объектов одинакового типа, обозначаемый одним именем.
Массив характеризуется следующими основными понятиями:
Элемент массива (значение элемента массива) – значение, хранящееся в определенной ячейке памяти, расположенной в пределах массива, а также адрес этой ячейки памяти. Каждый элемент массива характеризуется тремя величинами:
- адресом элемента — адресом начальной ячейки памяти, в которой расположен этот элемент;
- индексом элемента (порядковым номером элемента в массиве);
- значением элемента.
Адрес массива – адрес начального элемента массива.
Имя массива – идентификатор, используемый для обращения к элементам массива.
Размер массива – количество элементов массива
Размер элемента – количество байт, занимаемых одним элементом массива.
Графически расположение массива в памяти компьютера можно представить в виде непрерывной ленты адресов.