Объявление массива
<спецификация типа> <ид> [<константное выражение>}…[[<константное выражение>]]
Массив предназначен для хранения как единого целого множества значений одинакового типа. После ид. записывается количество элементов массива в квадратных скобках, которые являются признаком массива, а не признаком необязательности. Под массив выделяется непрерывный участок памяти, элементы массива располагаются в этой памяти построчно без каких-либо промежутков между ними. Если размерность массива не указана, память при объявлении не выделяется, а может быть распределена произвольно при инициализации.
Кроме того,в определении указывается количество значений, принимаемых каждым индексом.Например:int a[10];определяет массив из 10 элементов a[0],a[1],…a[9].float Z[13][6] определяет двумерный массив, первый индекс которого принимает 13 значений от 0 до 12, второй индекс принимает 6 значений от 0 до 5.Элементы д.м. z[0][0],z[0][1],z[0][2],…z[12][4],z[12][5]
char arr[2][2][2]
Вся информация, обрабатываемая ЭВМ, размещается в ОП, которая представляет собой непрерывную цепочку байтов. Каждый байт нумеруется от 0 до n-1, где n – общее количество байтов в ОП. Вся ОП разбивается на поля (непрерывные последовательности байтов фиксированного размера), в которые в двоичном представлении записывается инф. Каждое поле начинается с байта с некоторым номеров k – целое неотриц. число, адрес поля, в котором записаны данные.
Указатель предназначен для хранения адреса некоторой переменной.
<Спецификация типа> *<ид> [,*<ид>,…]
int *pi; - указатель на тип int.
Поскольку адрес, содержащийся в указателе, является целым положительным числом, с ним можно проводить аддитивные арифметические операции (+ -) – это суть адресной арифметики (+ и – целого числа и адреса). Число, которое мы + или – от адреса, наз. индексом.
Short *I;
….
I=I+2 – увеличение I на длину типа
Исп. адресной арифметики в контексте указателя предполагает отступ влево или вправо на указанное число длин типов. С другой стороны, массив представляет собой участок ОП, в которой непрерывно размещаются элементы одинаковых типов. С точки зрения доступа к конкретному элементу массива, мы должны также отступить от начала массива указанное число длин типов – это общность массивов и указателей. Имя массива есть указатель на зарезервированную под него область памяти.
Double *a = double a[]
С указателями можно формировать индексные выражения, характерные для массивов, а имя массива можно исп. в операторах адресной арифметики. В случае с многомерными массивами картина меняется. Чтобы определить размещение элемента многомерного массива в ОП с исп. операций адресной арифметики, необходимо обрабатывать индексное выражение массива слева направо. При этом к базовому значению адреса, которое записано в указателе (имени массива) последовательно прибавлять произведение соответствующего индекса на произведение оставшихся размерностей, пока не будет исчерпано индексное выражение массива. Т.О. мы определяем, сколько элементов массива нужно отступить от его начала, чтобы получить доступ к указанному элементу.
A[1][1][0]=5 или *(a+1*2*2+1*2+0*1)=5
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.