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

Баг компилятора????????

23.11.2010, 00:31. Просмотров 790. Ответов 7
Метки нет (Все метки)

Почему первая программа дает 6, а вторая 11?
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include <iostream>
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,c;
    a=5;
    b=6;
    c = a +++ b;
    std::cout<<a;
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include <iostream>
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,c;
    b=5;
    c=6;
    a = b +++ c;
    std::cout<<a;
    return 0;
}
У меня 2008 студио (9.0)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2010, 00:31
Ответы с готовыми решениями:

std::regex : баг на сайте или баг компилятора?
http://en.cppreference.com/w/cpp/regex/regex_match этот код выкидывает throw... Добавлено через...

Баг компилятора?
Набросал вот такой код: // &lt;@r!er&gt; &lt;wtf&gt; &lt;26.05.2012&gt; #include &lt;iostream&gt; #include &lt;windows.h&gt;...

Баг компилятора или я дурак?
До:https://www.cyberforum.ru/attachment.php?attachmentid=840160&amp;stc=1&amp;d=1496427343...

Баг компилятора? Или я чего то не догоняю?
Компилил в 2008 студии. Вопрос: ПОЧЕМУ ЭТОТ КОД КОМПИЛИРУЕТСЯ? class Bee { private: ...

7
64 / 64 / 12
Регистрация: 05.07.2010
Сообщений: 219
23.11.2010, 00:33 2
Цитата Сообщение от Chainyk Посмотреть сообщение
a +++ b;
мне кажется, такое каждый компилятор читает по-своему
1
бжни
2470 / 1680 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
23.11.2010, 00:39 3
a+++b = (a++) + b
первая шесть, потому что а инкрементируется
вторая 5+6
где баг то?

Добавлено через 58 секунд
Цитата Сообщение от st_dent Посмотреть сообщение
мне кажется, такое каждый компилятор читает по-своему
может кто-нибудь блестнет и извлечет чего-нибудь из стандарта =)
1
64 / 64 / 12
Регистрация: 05.07.2010
Сообщений: 219
23.11.2010, 00:42 4
извиняюсь, читается вполне однозначно.
C++
1
c = a +++ b;
В соответствии с приоритетами операции, сначала идет постфиксный инкремент, потом сложение, потом присваивание. Так что все однозначно.
1
15 / 15 / 2
Регистрация: 24.08.2010
Сообщений: 94
23.11.2010, 00:43  [ТС] 5
упс... в первой надо с выводить. А почему 11? Почему никакая переменная не инкрементируется?
0
В астрале
Эксперт С++
8029 / 4786 / 655
Регистрация: 24.06.2010
Сообщений: 10,558
23.11.2010, 00:44 6
Chainyk, Постинкремент.
1
15 / 15 / 2
Регистрация: 24.08.2010
Сообщений: 94
23.11.2010, 00:45  [ТС] 7
Понял,спасибо...
0
64 / 64 / 12
Регистрация: 05.07.2010
Сообщений: 219
23.11.2010, 00:45 8
Цитата Сообщение от Chainyk Посмотреть сообщение
Почему никакая переменная не инкрементируется?
в первом а увеличивается на один после присваивания, во втором b аналогичным образом
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2010, 00:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Баг asio? или баг TCP стека?
всем привет. повстречался с очень странным багом. и не могу определить кто бажит, asio, или...

Опции компилятора
Скажите пожалуйста, как можно проверить опции компилятора (с помощью макросов). Какие опции нужно...

Ошибка компилятора
Не работает cout и cin Visual Studio 2008 Помогите пожалуста кто может:wall::wall::wall:

Ошибка компилятора
#include &lt;iostream&gt; using namespace std; class ss { public: static bool progress; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.