Простейшими выражениями называются выражения, сформированные с использованием констант типов int, char и enum, операции sizeof, унарных операторов - и ~, бинарных операторов + * / % & | ^ << >> = =!= < > <= >= и тернарной операции?:.
Простейшие выражения используются в операторе switch, в инициализаторах границ массивов и в операторе препроцессора #if.
Логические операции ||, && являются условными логическими операциями, т. к. второй операнд вычисляется только при необходимости. В других языках программирования, например, в языке Паскаль, в логических операторах всегда вычисляются значения обоих операндов, даже если результат может быть определен вычислением одного операнда.
Важным свойством языка Си является то, что каждое выражение в Си имеет значение. Приведем несколько выражений и их значения:
Выражение | Значение |
-14+16 | |
a=3+8 | |
5>3 | |
14<3 | |
6+(c=3+8) |
Операторы
Любое выражение может быть преобразовано в оператор добавлением к нему точки с запятой. Запись вида
|
|
является оператором. Значение выражения игнорируется. Действие такого оператора состоит в создании побочного эффекта вычислением значения выражения.
Операторы служат основными строительными блоками программы. Программа состоит из последовательности операторов с добавлением небольшого количества знаков пунктуации. Оператор является законченной инструкцией для компиляторов. "Точка с запятой" является указанием на наличие оператора. Поэтому
line = 5- это всего лишь выражение, которое может быть частью большого выражения, но
line = 5;является оператором.
Выражение
5+5не является законченной инструкцией, а служит указанием компьютеру сложить 5 и 5, но не говорит, что делать с результатом.
dog=5+5;служит указанием компилятору, а затем компьютеру, поместить результат 10 в ячейку памяти, помеченную именем dog. После занесения в память числа 10 компьютер может приступить к выполнению следующих действий.
Составные операторы
Составной оператор представляет собой два или более операторов, объединенных с помощью фигурных скобок; он называется также блоком. Чтобы быть свободными в обсуждении составных операторов, рассмотрим один из операторов цикла языка Си и использования в Си функций printf() и scanf().