Главная arrow Программирование С++ arrow Выражения С++

Выражения С++

В основу языка С++ положено выражение, благодаря ему в программе совершается большая часть действий. Для того чтобы вы поняли, почему это так, напомню, что в языке С++ определены три категории операторов: ключевое слово, блок и выражение. Это означает, что любой оператор, который не начинается ключевым словом и не описывает блок, по определению является оператором-выражением. Следовательно, все приведенные далее операторы — это выражения.
count = 100;   , II строка 1
sartple = i / 32 *  (с-10) ; // строка 2
num = abs(count) * 2; // строка 3
strcpy(strl, str2); // строка 4
Давайте посмотрим пристальней на каждый из этих операторов-выражений. В языке С++ знак равенства (=) означает операцию присваивания. Это важно. Язык С++ не трактует присваивание как отдельный вид оператора, в отличие от некоторых других языков программирования. Напротив, в С++ знак равенства — это операция присваивания, и значение, полученное в результате этой операции, равно величине, полученной в правой части выражения. Следовательно, в языке С++ оператор присваивания — это на самом деле выражение присваивания (assignment expression). А поскольку это выражение, оно имеет значение. Вот почему корректна запись приведенных далее выражений.
а = b = с = 100;
If (  (а = 4+5) == 0 )   ...;
Причина работоспособности приведенных операторов в том, что операция присваивания порождает значение
В строке 2 приведено более сложное выражение присваивания. В этом случае вычисляется значение выражения справа от знака равенства и присваивается переменной sample.
В строке 3 вызывается функция abs (), возвращающая абсолютное значение своего аргумента. Таким образом, использование функции в выражении приводит к вызову этой функции.
Как показано в строке 4, даже сам по себе вызов функции — это уже выражение. В данном случае вызывается функция strcpyO для копирования содержимого одной строки в другую. И хотя значение, возвращаемое функцией strcpyO, игнорируется, вызов этой функции представляет собой выражение.