Выражение

Выражение ::= ВыражениеПрисваивания
          ::= Выражение , ВыражениеПрисваивания

В контексте, где запятая выступает в роли разделителя, например, списке параметров вызова функции или в списке инициализации, запятая как знак операции может появиться только в круглых скобках:

MyFun(a, (w = 5, w + 9), c)
/* Выражение вызова функции с тремя параметрами. Значение второго параметра
задаётся выражением, значение которого равно 14. */

Большая часть выражений представляет собой сочетание символов операций и операндов. Однако это вовсе не означает, что в ходе вычисления значения подобных выражений непременно будут применяться соответствующие операции. Выражение - это видимость. В каждом конкретном случае всё зависит от типа операндов. Если операнды оказываются операндами основного типа, либо указателями, то можно предположить, что при вычислении его значения будет выполняться конкретная операция C++. Если же операнды выражения оказываются операндами производного типа, символ операции может оказаться эквивалентным вызову операторной функции. И кто знает, что делает эта самая операторная функция.

Выражения присваивания

ВыражениеПрисваивания ::= УсловноеВыражение
      ::= УнарноеВыражение ОперацияПрисваивания ВыражениеПрисваивания
ОперацияПрисваивания ::= = | *= | /= | %= | += | -= |
                         >>= | <<= | &= | ^= | |= 

Условные и логические выражения

УсловноеВыражение ::= ВыражениеИлиЛогическое
           ::= ВыражениеИлиВключающее ? Выражение : УсловноеВыражение
ВыражениеИЛогическое ::= ВыражениеИлиВключающее
                   ::= ВыражениеИЛогическое && ВыражениеИлиВключающее
ВыражениеИлиЛогическое ::= ВыражениеИЛогическое
                   ::= ВыражениеИлиЛогическое || ВыражениеИЛогическое

Назад | Содержание | Вперед