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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как создать программу в виде таблицы? http://www.cyberforum.ru/cpp-beginners/thread1191062.html
Здравствуйте.. я вообще не понял, как это делать. помогите пожалуйста! Написать программу вычисления значений функций F(x) в виде списка и в виде таблицы для указанного диапазона значений аргумента с приведенными значениями исходных данных. F={2ae}^{2x}-\frac{\sqrt{1-{1,5\sin }^{2}x}}{0,3ab-x} Исходные данные: a = 0,5 b = 0,2 Диапазон и шаг изменения аргумента: x € с шагом 0,2
C++ Программа, переводящая число из одной системы счисления в другую Вопрос заключается в следующем. По условиям задачи, мне необходимо перевести число из двоичной системы счисления в десятичную. Я вроде знаю , как это делается, но оформление кода мне почему-то вообще непонятно for (int r = 1; var > 0; r *= 2) { result += (var % 10) * r; var /= 10; } Можете пояснить, что тут что? #include <iostream> http://www.cyberforum.ru/cpp-beginners/thread1191052.html
Решето Эратосфена C++
Как можно реализовать? Подскажите плиз
Выложите код для отправки по FTP среда CodeBlocks C++
Нигде не могу найти... Помогите, может есть у кого в коллекции... ) Заранее спасибо)
C++ Перегрузка стандартных операций http://www.cyberforum.ru/cpp-beginners/thread1191023.html
Дан класс (например, с именем Vector), задающий вектор размерности n. Поля класса: указатель на массив, задающий вектор (тип элемента int или double в зависимости от варианта), массив должен создаваться динамически, число элементов (размерность) вектора (тип int). Класс включает: конструктор без параметров, задающий пустой вектор (число элементов равно 0); конструктор, создающий объект вектор на...
C++ Как выставить паузу в C++ при запуске файла ? имеется 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 подробнее

Показать сообщение отдельно
tolik89u
157 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 21
28.05.2014, 11:54     Как вычисляется выражение a+++b?
Здравствуйте.
Как вычисляется выражение 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? Или это поведение меняется от компилятора к компилятору?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru