3.2 Сводка операций.

   


Назад  |  Вперёд

Полное и подробное описание операций языка С++ дано в $$R.7. Советуем прочитать этот раздел. Здесь же приводится краткая сводка операций и несколько примеров. Каждая операция сопровождается одним или несколькими характерными для нее именами и примером ее использования. В этих примерах class_name обозначает имя класса, member - имя члена, object - выражение, задающее объект класса, pointer - выражение, задающее указатель, expr - просто выражение, а lvalue (адрес) - выражение, обозначающее не являющийся константой объект. Обозначение (type) задает имя типа в общем виде (с возможным добавлением *, () и т.д.). Если оно указано без скобок, существуют ограничения.

Порядок применения унарных операций и операций присваивания "справа налево", а всех остальных операций - "слева направо". То есть, a=b=c означает a=(b=c), a+b+c означает (a+b)+c, и *p++ означает *(p++), а не (*p)++.


                           Операции С++
      ============================================================
      ::    Разрешение области видимости      class_name :: member
      ::    Глобальное                        :: name
      ____________________________________________________________
      .        Выбор члена                    object . member
      ->       Выбор члена                    pointer -> member
      []       Индексирование                 pointer [ expr ]
      ()       Вызов функции                  expr ( expr_list )
      ()       Структурное значение           type ( expr_list )
      sizeof   Размер объекта                 sizeof expr
      sizeof   Размер типа                    sizeof ( type )
      ____________________________________________________________
      ++       Постфиксный инкремент          lvalue ++
      ++       Префиксный инкремент           ++ lvalue
      --       Постфиксный декремент          lvalue --
      --       Префиксный декремент           -- lvalue
      ~        Дополнение                     ~ expr
      !        Логическое НЕ                  ! expr
      -        Унарный минус                  - expr
      +        Унарный плюс                   + expr
      &        Взятие адреса                  & lvalue
      *        Косвенность                    * expr
      new      Создание (размещение)          new type
      delete   Уничтожение (освобождение)     delete pointer
      delete[] Уничтожение массива            delete[] pointer
      ()       Приведение(преобразование)типа ( type ) expr
      ____________________________________________________________
      . *      Выбор члена косвенный          object . pointer-to-member
      ->*      Выбор члена косвенный          pointer -> pointer-to-member
      ____________________________________________________________
      *        Умножение                      expr * expr
      /        Деление                        expr / expr
      %        Остаток  от деления            expr % expr
      ____________________________________________________________
      +        Сложение (плюс)                expr + expr
      -        Вычитание (минус)              expr - expr
      ____________________________________________________________
      <<       Сдвиг влево                     expr << expr
      >>       Сдвиг вправо                    expr >> expr
      ____________________________________________________________
      <        Меньше                          expr < expr
      <=       Меньше или равно                expr <= expr
      >        Больше                          expr > expr
      >=       Больше или равно                expr >= expr
      ____________________________________________________________
      ==       Равно                           expr == expr
      !=       Не равно                        expr != expr
      ____________________________________________________________
      &        Поразрядное И                   expr & expr
      ____________________________________________________________
      ^        Поразрядное исключающее ИЛИ     expr ^ expr
      ____________________________________________________________
      |        Поразрядное включающее ИЛИ      expr | expr
      ____________________________________________________________
      &&       Логическое И                    expr && expr
      ____________________________________________________________
      ||       Логическое ИЛИ                  expr || expr
      ____________________________________________________________
      ? :      Операция условия                expr? expr : expr
      ____________________________________________________________
      =        Простое присваивание            lvalue = expr
      *=       Присваивание с умножением       lvalue *= expr
      /=       Присваивание с делением         lvalue /= expr
      %=       Присваивание с взятием          lvalue %= expr
               остатка от деления
      +=       Присваивание со сложением       lvalue += expr
      -=       Присваивание с вычитанием       lvalue -= expr
      <<=      Присваивание со сдвигом влево   lvalue <<= expr
      >>=      Присваивание со сдвигом вправо  lvalue >>= expr
      &=       Присваивание с поразрядным И    lvalue &= expr
      |=       Присваивание с поразрядным      lvalue |= expr
               включающим ИЛИ
      ^=       Присваивание с поразрядным      lvalue ^= expr
               исключающим ИЛИ
      ____________________________________________________________
               Запятая (последовательность)     expr , expr
      ____________________________________________________________

Все операции таблицы, находящиеся между двумя ближайшими друг к другу горизонтальными чертами, имеют одинаковый приоритет. Приоритет операций уменьшается при движении "сверху вниз". Например, a+b*c означает a+(b*c), так как * имеет приоритет выше, чем +; а выражение a+b-c означает (a+b)-c, поскольку + и - имеют одинаковый приоритет, и операции + и - применяются "слева направо".


Назад  |  Вперёд


OtDiatlovaOU
К началу книги

Оформление и дизайн книги OtDiatlovaOU.
Вся книга, архив.