-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375

Еще раз о бинарных и унарных операциях

08.05.2019, 15:38. Показов 4124. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ну да все мы знаем, что в C++ есть бинарные, унарные и даже тернарные операции.
Но вот почему то все учебники стыдливо обходят стороной такой вопрос, а вот скобки такие () и такие [] - это какая операция - унарная или бинарная? В списки приоритетов и ассоциативности они присутствуют, а вот насчет их унарности или бинарности - одна тишина.

Может знающие люди прояснят ситуацию.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2019, 15:38
Ответы с готовыми решениями:

Калькулятор бинарных и унарных операций
Здравствуйте. У меня есть код калькулятора, в котором я не могу правильно использовать циклы. Нужно сделать калькулятор и чтобы после...

Перегрузка операторов (бинарных и унарных)
Как сделать на основе этого кода не менее 2 унарных и 2 бинарных операторы. #include <iostream> #include <stdlib.h> ...

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

26
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
09.05.2019, 02:14
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от avgoor Посмотреть сообщение
Оно не в стандарте определяеццо. В стандарте есть на него ссылка.
Имел в виду, что мы, читая стандарт, и смотря на грамматику можем понять (определить) какой оператор бинарный, а какой унарный.

Ладно, мне понятно теперь о чем именно вы внесли уточнение. Надеюсь ТС тоже поймет
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13211 / 6844 / 1824
Регистрация: 18.10.2014
Сообщений: 17,318
09.05.2019, 06:30
Цитата Сообщение от Просто Саша Посмотреть сообщение
Ну да все мы знаем, что в C++ есть бинарные, унарные и даже тернарные операции.
В С++ есть следующие типы элементарных выражений, по типу использованных в них операторов:

1. унарные
2. постфиксные
3. каст в C-стиле
4. операции с указателями на члены
5. произведение и сложение
6. побитовые сдвиги
7. сравнения относительные и на равенство
8. побитовые and, or, xor
9. логические and, or
10. условный
11. бросание исключения
12. присваивание (включая составное присваивание)
13. запятая

Операторы групп 4-13, исключая 10 и 11, можно назвать "бинарными".

Несмотря на то, что в разделе "Expressions" стандарта языка унарными называются только префиксные унарные операторы, далее по тексту можно встретить и места, где "унарными" называют и постфиксные операторы.

Цитата Сообщение от Просто Саша Посмотреть сообщение
Но вот почему то все учебники стыдливо обходят стороной такой вопрос, а вот скобки такие () и такие [] - это какая операция - унарная или бинарная?
() и [] - группа 2: постфиксные операторы.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
09.05.2019, 06:35
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
() и [] - группа 2: постфиксные операторы.
как может помочь в повседневном программировании знать такие тонкости?

Добавлено через 27 секунд
постфиксные они да и бог с ними.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13211 / 6844 / 1824
Регистрация: 18.10.2014
Сообщений: 17,318
09.05.2019, 06:40
Цитата Сообщение от _stanislav Посмотреть сообщение
как может помочь в повседневном программировании знать такие тонкости?
О, это как раз таки используется в повседневном программировании постоянно при разборе и составлении выражений: постфиксные операторы в С и С++ обладают более высоким приоритетом, чем префиксные.

Например &a[b] - это именно &(a[b]), а не (&a)[b]. А *p++ - это *(p++), а не (*p)++ и т.д.
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
09.05.2019, 06:52
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
постфиксные операторы в С и С++ обладают более высоким приоритетом, чем префиксные.
никогда не задумывался, я просто знал какие операторы первые выполняются а какие вторые.

Добавлено через 3 минуты
классификация на постфиксные операторы и префиксные может просто помогут быстрее запомнить приоритет?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13211 / 6844 / 1824
Регистрация: 18.10.2014
Сообщений: 17,318
09.05.2019, 07:03
Цитата Сообщение от _stanislav Посмотреть сообщение
никогда не задумывался, я просто знал какие операторы первые выполняются а какие вторые.
Вот именно это вы и знали.

Цитата Сообщение от _stanislav Посмотреть сообщение
классификация на постфиксные операторы и префиксные может просто помогут быстрее запомнить приоритет?
Разумеется, поможет. Правило же исключительно простое и водораздел в нем проведен именно по линии постфиксные/префиксные. Еще раз: постфиксные операторы в С и С++ обладают более высоким приоритетом, чем префиксные.

А уж будете ли вы это правило "знать" в таком компактном виде, или предпочтете зачем-то "разобрать" его на индивидуальные операторы - это ваше личное дело.

Это знаете как... Вася Пупкин, готовясь к экзамену по матану, зубрил наизусть разложения в ряд Тейлора для всех элементарных функций. А Света Ниточкина вместо этого разобралась в том принципе, по которому эти разложения строятся. В результате на экзамене Вася лупил себя по лбу, пытаясь вспомнить разложение синуса, а Света с улыбкой играючи выписала все разложения, включая те, которых в свое время не смогли построить даже сами Тейлор с Маклареном. Вася теперь ломом плац подметает, а Света как ни в чем не бывало блистает в студенческой самодеятельности.
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
09.05.2019, 07:09
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Это знаете как...
да, я понял, формализация помогает изучать объект.

Добавлено через 2 минуты
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Вася Пупкин, готовясь к экзамену по матану, зубрил наизусть разложения в ряд Тейлора для всех элементарных функций. А Света Ниточкина вместо этого разобралась в том принципе, по которому эти разложения строятся.
Так же с английским, если хочешь научиться разговаривать на нем, нужно понять как язык работает (если конечно не живешь с детства среди англичан), а не зубрить словарь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2019, 07:09

Перегрузка унарных и бинарных операторов в шаблоне
Доброго времени суток! Недавно столкнулся с проблемой при написании такого шаблона: template <typename T> class CPoint; ...

В чём отличие унарных и бинарных операторов?
Подскажите пожалуйста, это унарный или бинарный оператор (а-b для комплексных чисел). Я знаю, что бинарный оператор, это когда два...

Ввести строку символов. Если символ в данной строке встречается один раз, в конце строки добавлять ещё раз его
Ввести строку символов. Если символ в данной строке встречается один раз, в конце строки добавлять ещё раз этот символ. Pезультат вывести...

Если символ в данной строке встречается один раз, в конце строки добавлять ещё раз этот символ
Помогите с задачей на C# Ввести строку символов. Если символ в данной строке встречается один раз, в конце строки добавлять ещё раз этот...

Почему так(комбинации бинарных и не бинарных вводов и выводов)?
#include <string> #include <iostream> #include <fstream> #include <iomanip> using namespace std; int main() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru