Рассмотрим ситуацию, когда нам нужно хранить пять целых чисел. Если мы используем простые концепции программирования и переменные типа данных, то нам нужно пять переменных типа данных int, и программа будет выглядеть следующим образом:
#include <stdio.h> int main() { int number1; int number2; int number3; int number4; int number5; number1 = 10; number2 = 20; number3 = 30; number4 = 40; number5 = 50; printf( "number1: %d\n", number1); printf( "number2: %d\n", number2); printf( "number3: %d\n", number3); printf( "number4: %d\n", number4); printf( "number5: %d\n", number5); }
Это было просто, потому что мы должны были хранить только пять целых чисел. Теперь давайте предположим, что мы должны хранить 5000 целых чисел. Собираемся ли мы использовать 5000 переменных?
Для обработки таких ситуаций почти все языки программирования предоставляют концепцию, называемую массивом . Массив — это структура данных, в которой может храниться коллекция элементов одного размера с фиксированным размером. Массив используется для хранения коллекции данных, но часто более полезно думать о массиве как о коллекции переменных одного типа.
Вместо того, чтобы объявлять отдельные переменные, такие как number1, number2, …, number99, вы просто объявляете одну переменную массива number целого типа и используете number1 [0], number1 [1] и …, number1 [99] для представляют отдельные переменные. Здесь 0, 1, 2, ….. 99 — это индекс, связанный с переменной var, и они используются для представления отдельных элементов, доступных в массиве.
Все массивы состоят из смежных областей памяти. Самый низкий адрес соответствует первому элементу, а самый высокий адрес — последнему.
Создать массивы
Чтобы создать переменную массива в C, программист указывает тип элементов и количество элементов, которые будут сохранены в этом массиве. Ниже приведен простой синтаксис для создания массива в C-программировании.
type arrayName [ arraySize ];
Это называется одномерным массивом. ArraySize должен быть целочисленной константой, большей нуля, и тип может быть любым допустимым типом данных C. Например, теперь, чтобы объявить массив из 10 элементов с именем number типа int , используйте этот оператор —
int number[10];
Здесь число — это переменный массив, которого достаточно для хранения до 10 целых чисел.
Инициализация массивов
Вы можете инициализировать массив в C один за другим или использовать один оператор следующим образом:
int number[5] = {10, 20, 30, 40, 50};
Число значений в фигурных скобках {} не может быть больше, чем количество элементов, которые мы объявляем для массива в квадратных скобках [].
Если вы опустите размер массива, будет создан массив, достаточно большой, чтобы вместить инициализацию. Поэтому, если вы напишите —
int number[] = {10, 20, 30, 40, 50};
Вы создадите точно такой же массив, как и в предыдущем примере. Ниже приведен пример назначения одного элемента массива:
number[4] = 50;
Вышеприведенный оператор присваивает элементу 5-й номер в массиве со значением 50. Все массивы имеют 0 в качестве индекса их первого элемента, который также называется базовым индексом, а последний индекс массива будет общим размером массива минус. 1. На следующем рисунке показано графическое представление массива, который мы обсуждали выше.
Доступ к элементам массива
Доступ к элементу осуществляется путем индексации имени массива. Это делается путем помещения индекса элемента в квадратные скобки после имени массива. Например —
int var = number[9];
Приведенный выше оператор возьмет 10-й элемент из массива и присвоит значение переменной var . В следующем примере используются все три вышеупомянутых понятия, а именно. создание, назначение и доступ к массивам —
#include <stdio.h> int main () { int number[10]; /* number is an array of 10 integers */ int i = 0; /* Initialize elements of array n to 0 */ while( i < 10 ) { /* Set element at location i to i + 100 */ number[ i ] = i + 100; i = i + 1; } /* Output each array element's value */ i = 0; while( i < 10 ) { printf("number[%d] = %d\n", i, number[i] ); i = i + 1; } return 0; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
number[0] = 100 number[1] = 101 number[2] = 102 number[3] = 103 number[4] = 104 number[5] = 105 number[6] = 106 number[7] = 107 number[8] = 108 number[9] = 109
Массивы в Java
Ниже приводится эквивалентная программа, написанная на Java. Java поддерживает массивы, но есть небольшая разница в том, как они создаются в Java с помощью оператора new .
Вы можете попытаться выполнить следующую программу, чтобы увидеть выходные данные, которые должны быть идентичны результату, сгенерированному в примере C выше.
public class DemoJava { public static void main(String []args) { int[] number = new int[10]; int i = 0; while( i < 10 ) { number[ i ] = i + 100; i = i + 1; } i = 0; while( i < 10 ) { System.out.format( "number[%d] = %d\n", i, number[i] ); i = i + 1; } } }
Когда вышеуказанная программа выполняется, она дает следующий результат —
number[0] = 100 number[1] = 101 number[2] = 102 number[3] = 103 number[4] = 104 number[5] = 105 number[6] = 106 number[7] = 107 number[8] = 108 number[9] = 109
Массивы (списки) в Python
Python не имеет концепции Array, вместо этого Python предоставляет другую структуру данных, называемую list , которая обеспечивает функциональность, аналогичную массивам на любом другом языке.
Ниже приводится эквивалентная программа, написанная на Python —
# Following defines an empty list. number = [] i = 0 while i < 10: # Appending elements in the list number.append(i + 100) i = i + 1 i = 0 while i < 10: # Accessing elements from the list print "number[", i, "] = ", number[ i ] i = i + 1
Когда вышеуказанная программа выполняется, она дает следующий результат —