Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375

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

08.05.2019, 15:38. Показов 4105. Ответов 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
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
09.05.2019, 02:14
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от avgoor Посмотреть сообщение
Оно не в стандарте определяеццо. В стандарте есть на него ссылка.
Имел в виду, что мы, читая стандарт, и смотря на грамматику можем понять (определить) какой оператор бинарный, а какой унарный.

Ладно, мне понятно теперь о чем именно вы внесли уточнение. Надеюсь ТС тоже поймет
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
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
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
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
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
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
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru