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

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

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

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

Может знающие люди прояснят ситуацию.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2019, 15:38
Ответы с готовыми решениями:

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

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

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

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

26
16082 / 8684 / 2120
Регистрация: 30.01.2014
Сообщений: 14,969
09.05.2019, 02:14 21
Цитата Сообщение от avgoor Посмотреть сообщение
Оно не в стандарте определяеццо. В стандарте есть на него ссылка.
Имел в виду, что мы, читая стандарт, и смотря на грамматику можем понять (определить) какой оператор бинарный, а какой унарный.

Ладно, мне понятно теперь о чем именно вы внесли уточнение. Надеюсь ТС тоже поймет
0
С чаем беда...
Эксперт CЭксперт С++
9989 / 5341 / 1461
Регистрация: 18.10.2014
Сообщений: 12,854
09.05.2019, 06:30 22
Цитата Сообщение от Просто Саша Посмотреть сообщение
Ну да все мы знаем, что в 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"
1581 / 1360 / 511
Регистрация: 16.08.2014
Сообщений: 5,647
Записей в блоге: 1
09.05.2019, 06:35 23
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
() и [] - группа 2: постфиксные операторы.
как может помочь в повседневном программировании знать такие тонкости?

Добавлено через 27 секунд
постфиксные они да и бог с ними.
0
С чаем беда...
Эксперт CЭксперт С++
9989 / 5341 / 1461
Регистрация: 18.10.2014
Сообщений: 12,854
09.05.2019, 06:40 24
Цитата Сообщение от _stanislav Посмотреть сообщение
как может помочь в повседневном программировании знать такие тонкости?
О, это как раз таки используется в повседневном программировании постоянно при разборе и составлении выражений: постфиксные операторы в С и С++ обладают более высоким приоритетом, чем префиксные.

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

Добавлено через 3 минуты
классификация на постфиксные операторы и префиксные может просто помогут быстрее запомнить приоритет?
0
С чаем беда...
Эксперт CЭксперт С++
9989 / 5341 / 1461
Регистрация: 18.10.2014
Сообщений: 12,854
09.05.2019, 07:03 26
Цитата Сообщение от _stanislav Посмотреть сообщение
никогда не задумывался, я просто знал какие операторы первые выполняются а какие вторые.
Вот именно это вы и знали.

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

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

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

Добавлено через 2 минуты
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Вася Пупкин, готовясь к экзамену по матану, зубрил наизусть разложения в ряд Тейлора для всех элементарных функций. А Света Ниточкина вместо этого разобралась в том принципе, по которому эти разложения строятся.
Так же с английским, если хочешь научиться разговаривать на нем, нужно понять как язык работает (если конечно не живешь с детства среди англичан), а не зубрить словарь.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2019, 07:09
Помогаю со студенческими работами здесь

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

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

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

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

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

еще раз об Id
Ситуация в следующем, единственный существоваший id пользователя погиб вместе с жестким диском....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru