Другие языки программирования и технологии

С++ почему объясните

Int a = 3;
Int b = 2;
b = a++;
cout << ++b;

Какой ответ и почему я не понимаю 5 же должно быть.
Олежка Гот
Олежка Гот
29
должно быть 4
АП
Андрей Поляков
50 628
Лучший ответ
Олежка Гот Посему объясните пожалуйста
Запусти пошагово под отладчиком - разберёшься. Или посмотри ассемблерный код.
МЦ
Максим Цан
38 256
a = 3, b = 2, поехали:

b = a++; // сперва в [b] занесет [а] (b=3), а потом прибавит к [a] единицу (a=3+1=4)
в итоге, a = 4, b = 3

cout << ++b; // сперва инкрементит [b] (b=3+1=4), потом выводит, в итоге на экране цифра 4.

-
-
-
____ НЕ ОТНОСИТСЯ К ВОПРОСУ: ____
просто пояснение:
b = ++a; // а вот тут он сперва инкр. [a] (3+1=4), а потом заносит в [b], тогда в [b] было бы 4, а не 3, в таком случае вывелось бы 5

еще пояснение:
cout << b++; // а вот тут он сперва выводит, а потом инкр. [b]
Int a = 3;
Int b = 2;
b = a++; // не разбираюсь
cout << ++b; // вроде если ставишь ++вначале то увеличиваться будет при следущем использовании переменной то есть.

нифига не понял у меня такой код работает чтоб 5 было.
int a = 3;
int b = 2;
b = a++;
++b;
cout << ++b; // а если 1 ++b а потом cout b то не работает я думал просто ++b а потом можно cout b без ++.

и чтоб разбираться почему не 5 а 4 очень умные люди говорят надо пользоваться отладчиком, гугли или тут спрашивай я до сих пор не знаю где что потом как ни будь узнаю когда нужен будет.
можно еще и так.
Int a = 3;
cout << a;
Int b = 2;
cout << b;
b = a++;
cout << b;
cout << ++b;
cout << b;
после каждого действия выводить на экран чтоб ты видел что происходит.
Оганян Ашот
Оганян Ашот
1 633
>>> какой ответ
4

>>> почему я не понимаю
Потому, что плохо учил основы.

Похожие вопросы