Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как вычисляется выражение a+++b? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как создать программу в виде таблицы? http://www.cyberforum.ru/cpp-beginners/thread1191062.html
Здравствуйте.. я вообще не понял, как это делать. помогите пожалуйста! Написать программу вычисления значений функций F(x) в виде списка и в виде таблицы для указанного диапазона значений...
C++ Программа, переводящая число из одной системы счисления в другую Вопрос заключается в следующем. По условиям задачи, мне необходимо перевести число из двоичной системы счисления в десятичную. Я вроде знаю , как это делается, но оформление кода мне почему-то вообще... http://www.cyberforum.ru/cpp-beginners/thread1191052.html
Решето Эратосфена C++
Как можно реализовать? Подскажите плиз
Перегрузка стандартных операций C++
Дан класс (например, с именем Vector), задающий вектор размерности n. Поля класса: указатель на массив, задающий вектор (тип элемента int или double в зависимости от варианта), массив должен...
C++ Как выставить паузу в C++ при запуске файла ? http://www.cyberforum.ru/cpp-beginners/thread1191014.html
имеется bat файл вот с таким кодом c:\work\suep\exe\name1.exe pause c:\work\suep\edit\edit.com c:\work\suep\otcet\rabeds.in pause CLS c:\work\suep\exe\ceds.exe pause CLS
C++ Достать нужный объект из контейнера Возник вопрос, отчасти я сам решил(получил нужный результат), но очень коряво. Мне нужно достать нужный объект из контейнера на абстрактный класс в методах классов наследниках. Если вкратце, то у... подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
28.05.2014, 13:02
Цитата Сообщение от tolik89u Посмотреть сообщение
Здравствуйте.
Как вычисляется выражение a+++b?
Как компилятор понимает, что означает +++: ++ + или + ++? Как он разбивает последовательность из трёх плюсов на два оператора? Есть понятия приоритета операций и ассоциативности, но они применяются уже к определённым операторам. А в данном случае как компилятор понимает, какой оператор использовался?
Согласно жадному алгоритму, в первый из двух операторов попадёт максимально возможное количество символов, получится
C++
1
(a++)+b
. Но я бы поставил скобки, чтоб избавиться от необходимости учитывать алгоритмы трансляции.

Добавлено через 52 секунды
Цитата Сообщение от tolik89u Посмотреть сообщение
«Почему компилятор использовал тот или иной оператор?»
Потому что жадина.

Добавлено через 3 минуты
Цитата Сообщение от Тамика Посмотреть сообщение
итая слева направо. Так же, как и человек видит простые примеры.
Нет. Человек в этом месте видит:
1.
C++
1
a+++b
, где +++ - один оператор.
2.
C++
1
(a+)+(+b)
.
3.
C++
1
(a++)+b)
.
4.
C++
1
a+(++b)
.
И выбирает, опираясь на знания языка (отбрасывая первые два варианта) и алгоритма трансляции, анализируя фрагмент за компилятор. Компилятор же сразу принимает третий вариант.

Добавлено через 4 минуты
Цитата Сообщение от tolik89u Посмотреть сообщение
Но всё-таки как ни понимай +++: либо ++ +, либо + ++, всё равно получается один двухплюсовый кусок и один одноплюсовый. Ни в одном из двух вариантов куски не больше второго.
Не надо сравнивать сумму, или среднее кусков, важно, где больше первый кусок.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru