Skip to content

Оператор выражение

Yuriy Syrovetskiy edited this page Dec 26, 2017 · 1 revision

Оператор-выражение — это основной строительный "кирпичик" описания действий в программе. Многие операторы могут включать в себя другие операторы, но на самом нижнем уровне чаще всего оказывается именно то, что называется оператором-выражением.

Формально любое выражение (см. Выражения) можно "превратить" в законченную команду, то есть оператор.

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++;

(См. Инкремент и декремент)

Значение вычисленного выражения, из которого состоит оператор-выражение оказывается проигнорированным, то есть, неиспользованным. Поэтому в операторе-выражении имеет смысл использовать только такое выражение, у которого есть какой-то побочный эффект — это выражение с операцией присваивания, инкремент или декремент, вызов функции, у которой есть побочные эффекты.

Clone this wiki locally