Форум программистов, компьютерный форум 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++ Достать нужный объект из контейнера Возник вопрос, отчасти я сам решил(получил нужный результат), но очень коряво. Мне нужно достать нужный объект из контейнера на абстрактный класс в методах классов наследниках. Если вкратце, то у... подробнее

Показать сообщение отдельно
tolik89u
157 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 21

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

28.05.2014, 11:54. Просмотров 1051. Ответов 15
Метки (Все метки)

Здравствуйте.
Как вычисляется выражение a+++b?
Как компилятор понимает, что означает +++: ++ + или + ++? Как он разбивает последовательность из трёх плюсов на два оператора? Есть понятия приоритета операций и ассоциативности, но они применяются уже к определённым операторам. А в данном случае как компилятор понимает, какой оператор использовался?

Добавлено через 2 минуты
Следующий код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void main(void){
    int a,b,c;
    a=10,b=100,c=1000;
    printf("a=10,b=100,c=1000;\na=%d, b=%d, c=%d\n\n",a,b,c);
    c=a+++b;
    printf("c=a+++b;\na=%d, b=%d, c=%d\n\n",a,b,c);
 
    a=10,b=100,c=1000;
    printf("a=10,b=100,c=1000;\na=%d, b=%d, c=%d\n\n",a,b,c);
    c=(a++)+b;
    printf("c=(a++)+b;\na=%d, b=%d, c=%d\n\n",a,b,c);
 
    a=10,b=100,c=1000;
    printf("a=10,b=100,c=1000;\na=%d, b=%d, c=%d\n\n",a,b,c);
    c=a+(++b);
    printf("c=a+(++b);\na=%d, b=%d, c=%d\n\n",a,b,c);
}
я выполнил в онлайн-компиляторе C: http://codepad.org/CtpEfoHy
Вот вывод программы:
Код
a=10,b=100,c=1000;
a=10, b=100, c=1000

c=a+++b;
a=11, b=100, c=110

a=10,b=100,c=1000;
a=10, b=100, c=1000

c=(a++)+b;
a=11, b=100, c=110

a=10,b=100,c=1000;
a=10, b=100, c=1000
Из данного кода ясно, что данный компилятор воспринимает +++ как ++ +. Но объясните: почему? Чем он руководствуется? Оговорено ли это в стандарте C? Или это поведение меняется от компилятора к компилятору?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru