Пространства имён
Варианты
Действия

Выражения

Материал из cppreference.com
< cpp‎ | language
 
 
Язык С++
Общие темы
Управление программой
Операторы условного выполнения
Операторы повторения
Операторы перехода
Функции
объявление функции
объявление лямбда-функции
шаблон функции
спецификатор inline
спецификаторы исключений (устарело)
спецификатор noexcept (C++11)
Исключения
Пространства имён
объявление пространства имён
псевдонимы пространства имён
Типы
спецификатор decltype (C++11)
Спецификаторы
cv-спецификаторы
спецификаторы продолжительности хранения
спецификатор constexpr (C++11)
спецификатор auto (C++11)
спецификатор alignas (C++11)
Инициализация
Литералы
Выражения
Утилиты
Типы
typedef-объявление
объявление псевдонима типа (C++11)
атрибуты (C++11)
Приведения типов
неявные преобразования
const_cast-преобразование
static_cast-преобразование
dynamic_cast-преобразование
reinterpret_cast-преобразование
C-подобное и функциональное приведение типов
Выделение памяти
Классы
Особые свойства классовых функций
Специальные функции-члены
Шаблоны
шаблон класса
шаблон функции
специализация шаблона
упакованные параметры (C++11)
Разное
Ассемблерные вставки
 

Выражение — это последовательность операторов и операндов, задающая вычисление. Выражение может иметь своим результатом значение и может вызывать побочные эффекты.

  • категории значений (lvalue, rvalue, glvalue, prvalue, xvalue) классифицируют выражения по их значениям
  • порядок вычисления аргументов и подвыражений задаёт порядок, в котором определяются промежуточные результаты
  • операторы позволяют использовать синтаксис, часто встречающийся в математике
Общие операции
присваивание инкремент, декремент арифметические операции логические операции операции сравнения доступ к члену класса другие

a = b
a = rvalue
a += b
a -= b
a *= b
a /= b
a %= b
a &= b
a |= b
a ^= b
a <<= b
a >>= b

++a
--a
a++
a--

+a
-a
a + b
a - b
a * b
a / b
a % b
~a
a & b
a | b
a ^ b
a << b
a >> b

!a
a && b
a || b

a == b
a != b
a < b
a > b
a <= b
a >= b

a[b]
*a
&a
a->b
a.b
a->*b
a.*b

a(...)
a, b
(type) a
? :

Специальные операции

static_cast приводит один тип к другому совместимому типу
dynamic_cast приводит указатель или ссылку на виртуальный базовый класс к указателю или ссылке на производный класс
const_cast приводит тип к совместимому типу с другими cv-квалификаторами
reinterpret_cast приводит тип к несовместимому тип
new выделяет память
delete освобождает память
sizeof запрашивает размер типа
sizeof... запрашивает размер пакета параметров (начиная с C++11)
typeid запрашивает сведения о типе
noexcept проверяет может ли выражение возбудить исключение (начиная с C++11)
alignof запрашивает значение выравнивания для типа (начиная с C++11)

[править] Преобразования

[править] Распределение памяти

[править] Литералы

Литералы — это лексемы программы на C++, обозначающие константные значения, встроенные в исходный код.