Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 05.03.2019
Сообщений: 4
1

Последовательность выполнения префиксных и постфиксных операций

16.03.2019, 14:39. Показов 1527. Ответов 5
Метки нет (Все метки)

i
C++
1
2
3
4
5
6
7
8
9
                                 nt v = 20;
                              
                              cout << v + 3 ;                //   23 
                              cout << ++ v ;                //    21
                              cout << v -- << v ++ ;       //    22 21     Почему здесь 22 ?
                            cout << v -- ;                  //    21
                             cout << v ++ ;                //    20
                             cout << ++ v ;                //    22
                             cout << -- v ;                //     21
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
2
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2019, 14:39
Ответы с готовыми решениями:

Последовательность выполнения операций
Qt 4.6 кросс-компиляция под Qtopia 4.5. g++. В целом, можно считать чистым с++. book ok; ok =...

Последовательность выполнения арифметических операций
Не могу понять, как идет порядок вычисления и не могу найти, где про это узнать. Например: 24 mod...

Последовательность выполнения операций в Logo
Добрый день. Можно ли как-то определить приоритет выполняемых операций. Например:Первоначально...

Укажите последовательность выполнения операций в выражении
1. Укажите последовательность выполнения операций в данном выражении: (x*x+Math.Sin(x+1))/x-2.

5
2546 / 1205 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
16.03.2019, 15:14 2
Три варианта ниже эквивалентны

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <vector>
using namespace std;
 
int c = 20;
 
int Foo()
{
    return c--;
}
 
int Bar()
{
    return c++;
}
 
int main()
{
    int a = 20;
    cout << a-- << a++;
    std::cout << std::endl;
 
    int b = 20;
    ( cout.operator<<(b--) ).operator<<(b++);
    std::cout << std::endl;
 
    (cout.operator<<( Foo() )).operator<<( Bar() );
    std::cout << std::endl;
}
И самому интересно стало согласно какому пункту стандарта Bar() поперёд Foo() компилятору интереснее стало

Добавлено через 3 минуты
Тут другой порядок вообще
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <vector>
using namespace std;
 
class Foo
{
public:
    Foo & a()
    {
        std::cout << "a" << std::endl;
        return *this;
    }
    Foo & b()
    {
        std::cout << "b" << std::endl;
        return *this;
    }
    Foo & c()
    {
        std::cout << "c" << std::endl;
        return *this;
    }
};
 
 
int main()
{
    Foo foo;
    foo.a().b().c();
}
2
885 / 341 / 78
Регистрация: 17.05.2015
Сообщений: 1,096
16.03.2019, 15:22 3
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
cout << a-- << a++;
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
( cout.operator<<(b--) ).operator<<(b++);
UB

warning: operation on ‘a’ may be undefined [-Wsequence-point]
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
И самому интересно стало согласно какому пункту стандарта
Точки следования.
3
2546 / 1205 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
16.03.2019, 15:41 4
eva2326, Хорошо.
0
2 / 2 / 0
Регистрация: 05.03.2019
Сообщений: 4
16.03.2019, 16:03  [ТС] 5
rikimaru2013, и все таки, в чем ошибка?
0
nd2
3422 / 2802 / 1252
Регистрация: 29.01.2016
Сообщений: 9,426
16.03.2019, 16:25 6
Лучший ответ Сообщение было отмечено poweratrest как решение

Решение

Цитата Сообщение от poweratrest Посмотреть сообщение
в чем ошибка?
http://alenacpp.blogspot.com/2... oints.html

Добавлено через 5 минут
https://en.cppreference.com/w/... eval_order
https://ru.cppreference.com/w/... eval_order
3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2019, 16:25

Определить последовательность выполнения логических операций
Такие задачки: 1. not(K) V H &amp; R V not(H) 2. not(K V H) &amp; not (R V H) 3. При каких значениях...

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

Укажите последовательность выполнения операций в произвольном выражении при отсутствии скобок
Укажите последовательность выполнения операций в произвольном выражении при отсутствии скобок

Ассоциативный массив на префиксных деревьях
Подскажите, существует ли контейнер или готовый класс, типа map, но основанный на префиксных...


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

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

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