Оператор-выражение — это основной строительный "кирпичик" описания действий в программе. Многие операторы могут включать в себя другие операторы, но на самом нижнем уровне чаще всего оказывается именно то, что называется оператором-выражением.
Формально любое выражение (см. Выражения) можно "превратить" в законченную команду, то есть оператор.
- Achtung!!!
Для того, чтобы из выражения "сделать" оператор, надо после выражения поставить точку с запятой. Всё! Такой оператор так и называется: оператор-выражение. Выполнение такого оператора приводит к вычислению выражения в нем. Но вычисленное значение выражения в этом операторе никак не используется, поэтому превращать в операторы имеет смысл только те выражения, при вычислении которых происходит что-то полезное.
Например, оператор:
2;
совершенно бессмысленен – его выполнение приводит к вычислению выражения 2, которое все равно никак не используется. Аналонично нет смысла писать такие операторы:
x; x * 2;
А вот такой оператор смысл уже имеет:
y = x * 2;
Нет смысла в таком операторе:
sin(alpha / 3);
Мы вычислим alpha/3
, а затем вызовем функцию sin
с вычисленным значением, но результат вычисления функции всё равно никак не используется.
А вот здесь результат уже используется:
y = sin(alpha / 3);
А в этом операторе:
printf("Ku-ku!\n");
используется не значение, возвращаемное функцией printf
(да-да! у функции printf
есть возвращаемое значение, но чаще всего оно не используется), а побочный эффект, который приводит к появлению текста на экране, так что это совсем не бесполезный оператор.
Этот оператор тоже совсем не бесполезный:
scanf("%d", &n);
Здесь в результате вычислений в переменную n
записывается введённое значение.
Использование выражений инкремента и декремента в качестве оператора-выражения тоже вполне осмысленно:
z++;
(См. Инкремент и декремент)
Значение вычисленного выражения, из которого состоит оператор-выражение оказывается проигнорированным, то есть, неиспользованным. Поэтому в операторе-выражении имеет смысл использовать только такое выражение, у которого есть какой-то побочный эффект — это выражение с операцией присваивания, инкремент или декремент, вызов функции, у которой есть побочные эффекты.