Язык программирования Objective-C предоставляет структуру данных, называемую массивом , в которой можно хранить последовательную коллекцию элементов одного и того же типа. Массив используется для хранения коллекции данных, но часто более полезно думать о массиве как о коллекции переменных одного типа.
Вместо того, чтобы объявлять отдельные переменные, такие как number0, number1, … и number99, вы объявляете одну переменную массива, такую как числа, и используете числа [0], числа [1] и …, числа [99] для представления отдельные переменные. Определенный элемент в массиве доступен по индексу.
Все массивы состоят из смежных областей памяти. Самый низкий адрес соответствует первому элементу, а самый высокий адрес — последнему.
Объявление массивов
Чтобы объявить массив в Objective-C, программист определяет тип элементов и количество элементов, требуемых массивом, следующим образом:
type arrayName [ arraySize ];
Это называется одномерным массивом. ArraySize должен быть целочисленной константой, большей нуля, и тип может быть любым допустимым типом данных Objective C. Например, чтобы объявить массив из 10 элементов с именем balance типа double, используйте этот оператор —
double balance[10];
Теперь баланс — это переменный массив, которого достаточно для хранения до 10 двойных чисел.
Инициализация массивов
Вы можете инициализировать массив в Objective-C либо один за другим, либо используя один оператор следующим образом:
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
Число значений в фигурных скобках {} не может быть больше, чем количество элементов, которые мы объявляем для массива в квадратных скобках []. Ниже приведен пример назначения одного элемента массива:
Если вы опустите размер массива, будет создан массив, достаточно большой, чтобы вместить инициализацию. Поэтому, если вы напишите —
double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};
Вы создадите точно такой же массив, как и в предыдущем примере.
balance[4] = 50.0;
Приведенный выше оператор присваивает элементу номер 5 в массиве значение 50,0. Массив с 4-м индексом будет 5-м, т. Е. Последним элементом, поскольку все массивы имеют 0 в качестве индекса их первого элемента, который также называется базовым индексом. Ниже приведено графическое представление того же массива, который мы обсуждали выше.
Доступ к элементам массива
Доступ к элементу осуществляется путем индексации имени массива. Это делается путем помещения индекса элемента в квадратные скобки после имени массива. Например —
double salary = balance[9];
Приведенный выше оператор возьмет 10-й элемент из массива и присвоит значение переменной salary. Ниже приведен пример, который будет использовать все три вышеупомянутых понятия, а именно. декларация, назначение и доступ к массивам —
#import <Foundation/Foundation.h> int main () { int n[ 10 ]; /* n is an array of 10 integers */ int i,j; /* initialize elements of array n to 0 */ for ( i = 0; i < 10; i++ ) { n[ i ] = i + 100; /* set element at location i to i + 100 */ } /* output each array element's value */ for (j = 0; j < 10; j++ ) { NSLog(@"Element[%d] = %d\n", j, n[j] ); } return 0; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
2013-09-14 01:24:06.669 demo[16508] Element[0] = 100 2013-09-14 01:24:06.669 demo[16508] Element[1] = 101 2013-09-14 01:24:06.669 demo[16508] Element[2] = 102 2013-09-14 01:24:06.669 demo[16508] Element[3] = 103 2013-09-14 01:24:06.669 demo[16508] Element[4] = 104 2013-09-14 01:24:06.669 demo[16508] Element[5] = 105 2013-09-14 01:24:06.669 demo[16508] Element[6] = 106 2013-09-14 01:24:06.669 demo[16508] Element[7] = 107 2013-09-14 01:24:06.669 demo[16508] Element[8] = 108 2013-09-14 01:24:06.669 demo[16508] Element[9] = 109
Массивы Objective-C в деталях
Массивы важны для Objective-C и требуют много дополнительных деталей. Существует несколько важных понятий, связанных с массивом, которые должны быть понятны программисту Objective-C —
Objective-C поддерживает многомерные массивы. Простейшей формой многомерного массива является двумерный массив.
Вы можете передать функции указатель на массив, указав имя массива без индекса.
Objective-C позволяет функции возвращать массив.
Вы можете сгенерировать указатель на первый элемент массива, просто указав имя массива без индекса.