Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3_laba.doc
Скачиваний:
2
Добавлен:
16.07.2019
Размер:
137.22 Кб
Скачать

3) Массив — это набор данных одного типа, собранных под одним именем. Форма объявления массива:

rласс_памяти тип список_массивов;

Поле класс_памяти определяет класс памяти массива, является необязательным. Поле тип является обязательным и определяет тип элементов массива. Все элементы массива должны быть одного типа. Элементами могут быть: переменные базового типа, константы перечислимого типа, структуры, объединения, указатели, массивы. Элементами массивов не могут быть: переменные типа void и функции. Поле список_массивов является обязательным и содержит один или несколько идентификаторов массивов, разделенных запятыми. Форма объявления массивов поле список_массивов:

имя [размер 1][размер 2]…[размер N]={список_инициализаторов}

Поле имя является обязательным и содержит идентификатор массива. Далее может следовать любое количество пар квадратных скобок (но не менее 1), определяющих мерность (число координат) массива. Внутри каждой пары скобок содержится целая константа, определяющая размер массива по данной координате. Следующий после этого знак = и поле список_инициализаторов являются необязательными и используются для инициализации массива. Возможна вторая форма объявления массивов поле список_массивов (на примере одномерного массива):

имя []={список_инициализаторов}.

Индексное выражение задает элемент массива и имеет вид:

выражение-1 [ выражение-2 ]

Тип индексного выражения является типом элементов массива, а значение представляет величину, адрес которой вычисляется с помощью значений выражение-1 и выражение-2.

Обычно выражение-1 - это указатель, например, идентификатор массива, а выражение-2 - это целая величина. Однако требуется только, чтобы одно из выражений было указателем, а второе целочисленной величиной. Поэтому выражение-1 может быть целочисленной величиной, а выражение-2 указателем. В любом случае выражение-2 должно быть заключено в квадратные скобки. Хотя индексное выражение обычно используется для ссылок на элементы массива, тем не менее индекс может появляться с любым указателем.

Индексные выражения для ссылки на элементы одномерного массива вычисляются путем сложения целой величины со значениями указателя с последующим применением к результату операции разадресации (*).

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

4) Так как память эвм имеет линейную структуру, то в памяти элементы массива будут располагаться последовательно в следующем порядке:

a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]

Общее правило расположения в памяти элементов N-мерного массива: сначала в памяти будут расположены элементы с наименьшими значениями n-1 индекса в порядке возрастания значений n-ого индекса от 0 до ln для всех индексов от 1 до N (не путать мерность массива и индексацией N>0, N — число координат).

Приведенный индекс — возможность адресоваться к элементам N-мерного массива с использованием N-p координат (p-произвольно, p<N). При обращении к элементу массива a[индекс 1][индекс 2][индекс N] компилятор вычисляет смещение этого элемента от начала массива по формуле:

смещение=индекс 1*размер 2*…*размер N + индекс 2*размер 3*…*размер N + … + + индекс N-1*размер N + индекс N.

5) Выражение — комбинация операндов и операций, задающая порядок вычисления некоторого значения и принимающая это значение.

Операции — это инструкции, определяющие действия над операндами.

В качестве операнда могут выступать:

1. Идентификатор. Тип определяется объявлением идентификатора, значение идентификатора определяется типом (для целых и вещественных переменных — значение этого типа; для переменных перечислимого типа — значение одной из констант из состава соответствующего этому перечислению списка).

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

2. Константа. Целочисленное значение, вещественное значение, символ (в выражениях всегда имеет тип int, значение — код символа) или строка (выражение — константный адрес первого элемента строки).

3. Другое выражение.

Чтобы значение выражения было определено, значения всех операндов в выражении должны быть определены.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]