Операторы делятся на 3 группы:
· Операторы-выражения;
· Пустые операторы и блоки;
· Операторы, начинающиеся с ключевого слова;
Перед каждым оператором может находиться метка (имя метки любой идентификатор) или список меток разделенных «:» двоеточием.
Оператор-выражение
Любое выражение может быть преобразовано в оператор добавлением к нему точки с запятой, т. е. оператор-выражение имеет вид
Выражение;
Где выражение - любое выражение.
Оператор присваивания – это частный случай оператора-выражения.
Пустой оператор
Пустой оператор обозначается точкой с запятой;его выполнение не дает никаких результатов.
Используют его чаще всего в тех случаях, когда логически не требуется выполнение никаких действий, но в соответствии с правилами синтаксиса присутствие оператора обязательно. Например:
int a=0,b=5;
if (a == b) ; elseb=a;/*в случае истинности выражения a == b ничего не делать иначе b=a*/
Составной оператор (блок)
Имеет следующий вид
{
определения и описания
операторы
}
Составной оператор используется в следующих случаях:
· чтобы сгруппировать несколько логически связанных операторов в один оператор
· в качестве тела функции
· для ограничения видимости определенной части программы.
Во время выполнения составного оператора переменные, описанные вне данного блока, с идентичными именами будут недоступны в этом блоке.
Пример:
#include <stdio.h>
void main()
{
char c=’i’;
{
char c=’h’;
printf(“%c”,c);
}
printf(“%c”,c);
}
в результате выполнения этой программы будет выведен на экран hi.
Оператор перехода
Goto метка;
Выполнение оператора goto приводит к переходу на выполнение инструкции обозначенной меткой. Диапазон действия метки функция в которой она описана данная метка.
Условный оператор
Этот оператор имеет 2 вида
1 вид
if (выражение) оператор1;
2 вид
if (выражение) оператор1;
else оператор2;
Выражение является условием. Если его значение не равно нулю (истинно), то выполняется оператор1, в противном случае, если условие равно 0 (ложно), то оператор if в первом случае заканчивается, а во втором выполняется оператор2.
Синтаксически как оператор1 так и оператор2 должны быть единственными операторами. Следовательно, если в этом месте должно быть более одного оператора, то эти операторы необходимо объединить в один оператор, заключив их в фигурные скобки, т. е. используя, составной оператор
Пример
if (a==b) {a=b;b=4;
}
То, что часть else в конструкции if - else является необязательной, приводит к двусмысленности в случае, когда else опускается во вложенной последовательности операторов if. Эта неоднозначность разрешается обычным образом - else связывается с ближайшим предыдущим if, не содержащим else.
т. е.
if (e1) if (e2) s1;
else s2;
(*)
Будет интерпретироваться как
if (e1)
if (e2)
s1;
else s2;
/*else относится ко второму if*/
Если нам требуется, чтоб в выражение (*) else относился к первому if, то можно, используя, пустой оператор, переписать его как
if (e1) if (e2)
s1;
else;
else
s2;
или использовать фигурные скобки
if (e1)
{if (e2)s1;}
else
s2;