Оператор goto и операторы с метками




Синтаксис: goto имя;... имя: оператор

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

Метка оператора имеет смысл только для оператора goto. В любом другом контексте оператор с меткой выполняется так, как если бы ее вообще не было.

Имя метки это просто идентификатор. Каждая метка оператора должно отличаться от других меток операторов в данной функции.

Оператор if

Синтаксис: if (выражение) оператор 1 [else оператор2]

Тело оператора if выполняется выборочно, в зависимости от значения выражения, по следующей схеме:

  1. Вычисляется значение выражения.
    • Если значение выражения "истина" (не ноль), то выполняется оператор1.
    • Если значение выражения "ложь", то выполняется оператор2.
    • Если значение выражения "ложь" и не задана статья else, то оператор1 игнорируется.
  2. Управление передается от оператора if на следующий оператор программы.

В языке С отсутствует оператор "else if", но этого же эффекта можно достигнуть вложенными операторами if. Оператор if может быть вложен либо в предложение if, либо в предложение else другого оператора if.

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

Пустой оператор

Синтаксис:;

"Пустой оператор" это оператор, который состоит только из точки с запятой.

Оператор return

Синтаксис: return [выражение]

Оператор return прекращает выполнение функции, в которой он появляется и передает управление на вызов функции. Выполнение программы продолжается непосредственно с той точки, откуда был произведен вызов функции. Значение выражения, если оно есть, передается на вызов функции. Если выражение не задано, то возвращаемое функцией значение не определено.

Если в определении функции отсутствует оператор return, то управление автоматически передается на вызов функции после выполнения последнего оператора вызванной функции. При этом не определено возвращаемое вызванной функцией значение. Если от функции не требуется возврат какого-либо значения, то функция объявляется с возвращаемым значением типа void.

Оператор switch

Синтаксис: switch (выражение) { [объявление]... [case постоянное-выражение:]... [оператор]... [default: [оператор]] }

Оператор switch передает управление на оператор в своем теле. Управление будет передано тому оператору, значение case постоянное-выражение которого совпадает с выражением switch. Оператор switch может содержать любое число элементов case. Выполнение тела оператора начинается в выбранном операторе и заканчивается в конце тела или в тот момент, когда оператор передаст управление вне тела.

Оператор default выполняется в том случае, если ни одно постоянное-выражение case которого не совпадет с выражением switch. Если оператор default не задан и ни одно совпадение с case не обнаружено, то ни один из операторов тела switch не будет выполнен.

На один оператор может указывать несколько меток case.

Оператор while

Синтаксис: while (выражение) оператор

Тело оператора while выполнится ноль или более раз до тех пор, пока значением выражения не станет "ложь" (0).

Функции

Синтаксис: [спецификатор-класса] [спецификатор-типа]декларатор ([список-формальных-параметров]) тело-функции В "определении функции" задается ее имя, формальные параметры и тело функции. Кроме того, может задаваться возвращаемый функцией тип и класс хранения. "Формальные параметры" это переменные, которые принимают передаваемые при вызове функции значения. В определении прототипа функции скобки, которые следуют за именем функции, содержат полные объявления формальных параметров функции. Синтаксис: выражение([список-выражений]) "Вызов функции" это выражение, которое передает управление и действительные аргументы, если они есть, функции. В вызове функции "выражение" вычисляется для получения адреса функции, а "список-выражений" это список разделенных запятыми выражений. Значения этих выражений являются действительными аргументами, передаваемыми в функцию. Если у функции нет аргументов, то список выражений может быть пустым.

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

Все действительные аргументы передаются их значениями. Копия действительного аргумента передается соответствующему формальному параметру. Функция использует эту копию без какого-либо воздействия на переменную, из которой она была получена.

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: