Операторы языка си плюс

Операторы в C

Операторы C являются подмножеством встроенных операторов C++.

Существуют три типа операторов. Унарное выражение состоит либо из унарного оператора, за которым следует операнд, либо из ключевого слова sizeof или _Alignof , за которым следует выражение. Выражением может быть либо имя переменной, либо выражение приведения типа. В последнем случае выражение должно быть заключено в круглые скобки. Бинарное выражение состоит из 2 операндов, соединенных бинарным оператором. Троичное выражение состоит из 3 операндов, соединенных оператором условного выражения.

В языке C имеются следующие унарные операторы:

Символ name
~ ! Операторы отрицания и дополнения
* & Операторы косвенного обращения и взятия адреса
_Alignof Оператор выравнивания (начиная с выпуска C11)
sizeof Оператор определения размера
+ Оператор унарного сложения
++ Унарные операторы инкремента и декремента

Бинарные операторы имеют левую ассоциативность, т. е. выполняются слева направо. В языке C имеются следующие бинарные операторы:

Символ name
* / % Мультипликативные операторы
+ Аддитивные операторы
>> Операторы сдвига
> >= == != Реляционные операторы
& | ^ битовые операторы;
&& || Логические операторы
, Оператор последовательного вычисления

Базовый оператор ( :> ), который поддерживается в предыдущих версиях компилятора Microsoft C для 16-разрядных систем, описывается в кратком обзоре синтаксиса языка C.

Оператор условного выражения имеет более низкий приоритет, чем бинарные выражения, и отличается от них тем, что имеет правую ассоциативность.

К выражениям с операторами также относятся выражения присваивания, в которых используются унарные или бинарные операторы присваивания. Унарные операторы присваивания — это операторы инкремента и декремента ( ++ и соответственно). Бинарные операторы присваивания — это оператор простого присваивания ( = ) и составные операторы присваивания. Все составные операторы присваивания состоят из другого бинарного оператора и оператора простого присваивания.

См. также

Источник

Операторы в C

Операторы C являются подмножеством встроенных операторов C++.

Существуют три типа операторов. Унарное выражение состоит либо из унарного оператора, за которым следует операнд, либо из ключевого слова sizeof или _Alignof , за которым следует выражение. Выражением может быть либо имя переменной, либо выражение приведения типа. В последнем случае выражение должно быть заключено в круглые скобки. Бинарное выражение состоит из 2 операндов, соединенных бинарным оператором. Троичное выражение состоит из 3 операндов, соединенных оператором условного выражения.

В языке C имеются следующие унарные операторы:

Символ name
~ ! Операторы отрицания и дополнения
* & Операторы косвенного обращения и взятия адреса
_Alignof Оператор выравнивания (начиная с выпуска C11)
sizeof Оператор определения размера
+ Оператор унарного сложения
++ Унарные операторы инкремента и декремента

Бинарные операторы имеют левую ассоциативность, т. е. выполняются слева направо. В языке C имеются следующие бинарные операторы:

Символ name
* / % Мультипликативные операторы
+ Аддитивные операторы
>> Операторы сдвига
> >= == != Реляционные операторы
& | ^ битовые операторы;
&& || Логические операторы
, Оператор последовательного вычисления

Базовый оператор ( :> ), который поддерживается в предыдущих версиях компилятора Microsoft C для 16-разрядных систем, описывается в кратком обзоре синтаксиса языка C.

Оператор условного выражения имеет более низкий приоритет, чем бинарные выражения, и отличается от них тем, что имеет правую ассоциативность.

К выражениям с операторами также относятся выражения присваивания, в которых используются унарные или бинарные операторы присваивания. Унарные операторы присваивания — это операторы инкремента и декремента ( ++ и соответственно). Бинарные операторы присваивания — это оператор простого присваивания ( = ) и составные операторы присваивания. Все составные операторы присваивания состоят из другого бинарного оператора и оператора простого присваивания.

См. также

Источник

Справочник по языку C++

В этом справочнике объясняется язык программирования C++, реализованный в компиляторе Microsoft C++. Организация основана на Справочнике по C++ с заметками Маргарет Эллис и Бьярне Струструп и международном стандарте ANSI/ISO C++ (ISO/IEC FDIS 14882). Включены реализации компонентов языка С++ корпорацией Майкрософт.

Общие сведения о современных методиках программирования на C++ см. в разделе Добро пожаловать в C++.

Для быстрого поиска ключевого слова или оператора обращайтесь к следующим таблицам:

В этом разделе

Лексические соглашения
Основные лексические элементы программ на C++: токены, комментарии, операторы, ключевые слова, знаки пунктуации, литералы. Кроме того, трансляция файлов, приоритет и ассоциативность операторов.

Основные понятия
Область, компоновка, запуск и завершение программы, классы хранения и типы.

Встроенные типы Основные типы, встроенные в компилятор C++, и их диапазоны значений.

Стандартные преобразования
Преобразования типов между встроенными типами. Кроме того, арифметические преобразования и преобразования между типами указателей, ссылочными типами и типами указателей на члены.

Объявления и определения Объявление и определение переменных, типов и функций.

Выражения
Типы выражений, семантика выражений, справочные разделы по операторам, приведению типов и операторам приведения, сведения о типах времени выполнения.

Лямбда-выражения
Метод программирования, с помощью которого неявно определяется класс объекта функции и создается объект функции этого типа класса.

Операторы
Операторы выражений, пустые операторы, составные операторы, операторы выбора, операторы итераций, операторы перехода и операторы объявления.

Классы и структуры
Вводные сведения о классах, структурах и объединениях. Кроме того, функции-члены, специальные функции-члены, элементы данных, битовые поля, this указатель, вложенные классы.

Объединения
Определяемые пользователем типы, в которых все члены имеют одно расположение в памяти.

Производные классы
Одно и несколько наследование, virtual функции, несколько базовых классов, абстрактные классы, область правила. Кроме того, ключевые __super слова и __interface .

Управление доступом к членам
Управление доступом к членам класса: public , private и ключевые protected слова. Дружественные функции и классы.

Перегрузка
Перегруженные операторы, правила для перегрузки операторов.

Обработка исключений
Обработка исключений в C++, структурированная обработка исключений (SEH), ключевые слова, используемые при написании операторов обработки исключений.

Сообщения об утверждении и User-Supplied
#error директива static_assert , ключевое слово, макрос assert .

Шаблоны
Спецификации шаблонов, шаблоны функций, шаблоны классов, typename ключевое слово, шаблоны и макросы, шаблоны и интеллектуальные указатели.

Обработка событий
Объявление событий и обработчиков событий.

Модификаторы, относящиеся к Майкрософт
Модификаторы, используемые в Microsoft C++. Адресация памяти, соглашения о вызовах, naked функции, расширенные атрибуты класса хранения ( __declspec ), __w64 .

Встроенный ассемблер
Использование языка ассемблера и C++ в __asm блоках.

Поддержка COM компилятора
Справочник по характерным для систем Microsoft классам и глобальным функциям, используемым для поддержки типов модели COM.

Нестандартное поведение
Сведения о нестандартном поведении компилятора Microsoft C++.

Добро пожаловать в C++
Обзор современных методик программирования на C++ для написания безопасных, правильных и эффективных программ.

Связанные разделы

Расширения компонентов для платформ среды выполнения
Справочные материалы по использованию компилятора Microsoft C++ для целевой платформы .NET.

Справочные сведения о сборке C/C++
Параметры компилятора, параметры компоновщика и другие средства сборки.

Справочник по препроцессору C/C++
Справочный материал по прагма-директивам, директивам препроцессора, предопределенным макросам и препроцессору.

Библиотеки Visual C++
Список ссылок на справочные начальные страницы для различных библиотек Microsoft C++.

Источник

Встроенные операторы C++, приоритет и ассоциативность

Язык C++ включает все операторы C и еще несколько новых операторов. Операторы определяют, какое вычисление следует выполнить с одним или несколькими операндами.

Очередность и ассоциативность

Приоритет операторов определяет порядок операций в выражениях, содержащих несколько операторов. Ассоциативность операторов указывает, сгруппирован ли операнд в выражении, которое содержит несколько операторов с одинаковым приоритетом, с операндом слева или с правым.

Альтернативные орфографии

C++ задает альтернативные варианты написания для некоторых операторов. В C альтернативные варианты написания предоставляются в виде макросов в заголовке . В C++ эти альтернативы являются ключевыми словами, и использование или эквивалента не рекомендуется. В Microsoft C++ для включения альтернативных /permissive- орфографических ошибок требуется параметр компилятора или /Za .

Таблица приоритета и ассоциативности операторов C++

В следующей таблице показан приоритет и ассоциативность операторов C++ (в порядке убывания приоритета). Операторы с тем же номером приоритета имеют равный приоритет, если другие связи не заданы явно с помощью круглых скобок.

Описание оператора Оператор Альтернатива
Приоритет группы 1, без ассоциативности
Разрешение области ::
Приоритет группы 2, ассоциативность слева направо
Выбор члена для указателей (объект или указатель) . или ->
Индекс массива []
Вызов функции ()
Постфиксный инкремент ++
Постфиксный декремент
Имя типа typeid
Постоянное преобразование типа const_cast
Динамическое преобразование типа dynamic_cast
Повторно интерпретируемое преобразование типа reinterpret_cast
Статическое преобразование типа static_cast
Приоритет группы 3, ассоциативность справа налево
Размер объекта или типа sizeof
Префиксный инкремент ++
Префиксный декремент
Дополнение к одному ~ compl
Логическое не ! not
Унарное отрицание
Унарный плюс +
Взятие адреса &
Косвенное обращение *
Создание объекта new
Уничтожение объекта delete
Cast ()
Приоритет группы 4, ассоциативность слева направо
Указатель на член (объекты или указатели) .* или ->*
Приоритет группы 5, ассоциативность слева направо
Умножение *
Отдел /
Модуль %
Приоритет группы 6, ассоциативность слева направо
Сложение +
Вычитание
Приоритет группы 7, ассоциативность слева направо
Сдвиг влево
Сдвиг вправо >>
Приоритет группы 8, ассоциативность слева направо
Меньше чем <
Больше чем >
Меньше или равно
Больше или равно >=
Приоритет группы 9, ассоциативность слева направо
Равенство ==
Неравенство != not_eq
Приоритет ассоциативности слева направо в группе 10
Побитовое И & bitand
Приоритет группы 11, ассоциативность слева направо
Побитовое исключающее ИЛИ ^ xor
Приоритет группы 12, ассоциативность слева направо
Побитовое ИЛИ | bitor
Приоритет группы 13, ассоциативность слева направо
Логическое И && and
Приоритет группы 14, ассоциативность слева направо
Логическое ИЛИ || or
Приоритет группы 15, ассоциативность справа налево
Условная логика ? :
Передача прав и обязанностей =
Присваивание умножения *=
Присваивание деления /=
Назначение модуля %=
Присваивание сложения +=
Присваивание вычитания -=
Присваивание сдвига влево <
Присваивание сдвига вправо >>=
Назначение побитового И &= and_eq
Назначение побитового включающего ИЛИ |= or_eq
Назначение побитового исключающего ИЛИ ^= xor_eq
Выражение Throw throw
Приоритет группы 16, ассоциативность слева направо
Запятая ,

Источник

Читайте также:  Python requests get request headers
Оцените статью