Программирование >>  Программирование на языке c++ 

1 ... 149 150 151 [ 152 ] 153 154 155 ... 159


переменной у. Унарная операция * воспринимает свой операнд как адрес некоторого объекта и использует этот адрес для выборки содержимого, поэтому оператор z=*y; присваивает Z значение переменной, записанной по адресу у. Указатели необходимо объявлять в программе, делается это так:

int *р; здесь р - указатель на объект целого типа

Допускаются два типа подобных объявлений:

int* р1,р2; объявляется указатель на целое р1

и целое р2 int *р1,р2; объявляется указатель на целое р1

и целое р2

При объявлении любого производного типа действие оператора (например, *) распространяется только на одно следующее за ним имя.

Указатели можно использовать как операнды в арифметических операциях. Если у - указатель, то унарная операция У++ увеличивает его значение (теперь оно является адресом следующего элемента).

Любой указатель можно проверить на равенство (==) или неравенство (!=) со специальным значением NULL, которое задает ничего не адресующий указатель.

1.5. Организация циклов. Циклы строятся для повторения инструкции или группы инструкций определенное число раз. В языке С три оператора циклов: for, while и do while. Первый из них формально записывается в виде

for(BbipaKeHHe 1, выражение 2, выражение 3) тело цикла

Тело цикла составляет либо инструкция, либо любое подмножество инструкций, заключенных в фигурные скобки. В выражениях 1, 2, 3 фигурирует специальная переменная, называемая управляющей. По ее значению устанавливается необходимость повторения цикла либо выхода из него. Каждое из трех выражений в скобках предназначено для:

1) присвоения начального значения управляющей переменной;

2) проверки выполнения условия продолжения цикла;

3) изменения значения управляющей переменной.

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



for (;;) { ... }

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

Оператор while формально записывается в виде while (выражение) тело цикла

Выражение в скобках может принимать ненулевое (истинное) или нулевое (ложное) значение. Если оно истинно, то выполняется тело цикла, и выражение вычисляется снова. Если выражение ложно, цикл while завершается.

Основное различие между циклами while и do while заключается в том, что тело в цикле do while выполняется по крайней мере один раз. Оператор do while формально записывается в виде

do тело цикла while (выражение);

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

Допускается вложенность одних циклов в другие, т. е. в теле любого цикла могут появляться новые операторы for, while и do while.

В теле цикла могут использоваться операторы break и continue. Первый из них обеспечивает немедленный выход из цикла. Оператор continue вызывает прекращение очередной и начало следующей итерации.

1.6. Организация условных и безусловных переходов. Для этих целей в языке С используются операторы: if else, switch case и goto. Первый из них записывается в следующем виде:

if (проверка условия) инструкция 1; else инструкция 2;

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

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



case константа п-1:вариант п-1; break; default: вариант n;

Здесь вычисляется значение целого выражения в скобках (его иногда называют селектором), и оно сравнивается со всеми константами (константными выражениями). Все константы должны быть различными. При совпадении выполняется соответствующий вариант (одна или несколько инструкций). Вариант с ключевым словом default выполняется, если ни один другой не подошел (слово default может и отсутствовать). Если default отсутствует, а все результаты сравнения отрицательны, то ни один вариант не выполняется. Допускаются вложенные конструкции switch.

Оператор безусловного перехода записывается в следующей форме:

goto метка;

Здесь метка - это любой идентификатор, который записывается также в другом месте программы (в виде метка:) и задает точку, к которой должен быть выполнен условный переход. Метку можно поставить перед любой инструкцией в той функции, где находится соответствующий оператор goto (метки не надо объявлять).

1.7. Массивы. Массив состоит из элементов одного и того же типа. Ко всему массиву целиком можно обращаться по имени. Кроме того, можно выбирать любой элемент массива. Для этого необходимо задать индекс, который указывает его (элемента) относительную позицию. Число элементов массива назначается при его объявлении и далее не меняется. Рассмотрим примеры объявлений массивов:

int а[20]; массив из 20 элементов целого типа 460

Согласно принятому в языке С соглашению, слово else всегда относится к ближайшему предшествующему ему If.

Оператор switch case позволяет выбрать одну из нескольких альтернатив. Он записывается в следующем формальном виде:

switch (выражение)

{ case константа 1: вариант 1; break;



1 ... 149 150 151 [ 152 ] 153 154 155 ... 159

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика