Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345

Почему не срабатывает инкремент?

02.08.2013, 18:38. Показов 1994. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В комментарии показал вывод программы. Все переменные почему равны 2
Получается инкремент не оказывает никакого влияния?

C++
1
2
3
4
5
int     a=0, b=0, c=0;
 
c = ++a = b = 2;
 
std::cout << a << " " << b << " " << c;  // 2 2 2
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.08.2013, 18:38
Ответы с готовыми решениями:

Почему в инструкции if (x++ && y++) {} инкремент первой переменной срабатывает, а второй - нет?
int main(int argc, char** argv) { int x = 0; int y = 0; if (x++ &amp;&amp; y++) { y += 2; }

Указатели: почему так происходит? Постфиксный и префиксный инкремент
В общем, вот код программы double q; for (int i(0);i&lt;10;i++) { q=i; } cout&lt;&lt;q&lt;&lt;endl; double* d=q; ...

Не срабатывает условие. Почему?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int _tmain(int argc, _TCHAR* argv) { ...

14
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.08.2013, 18:41
Присваивание работает справа на лево
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
02.08.2013, 18:43
Потому что сначала a увеличивается ++'ом, а потом уже туда записывается 2.
1
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
02.08.2013, 18:44  [ТС]
DiffEreD, все равно непонятно, почему переменная a не изменяется. Ведь ++a
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
02.08.2013, 19:00
C++
1
c = ++a = b = 2;
C++
1
2
3
4
b = 2;
++a;
a = b;
c = a;
1
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
02.08.2013, 19:07  [ТС]
Somebody, да, я понял. Переменная a сначала увеличивается на единицу а потом идет присваивание a = b;
0
3 / 3 / 1
Регистрация: 28.12.2011
Сообщений: 253
27.09.2013, 04:07
Подскажите если х=4, то операция y=++х, приведет к какому результату, какие значение будут иметь х,y. То есть хочеться знать какая разница между х++ и ++х, и как это влияет на y. То есть идет лиш присваевание?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
27.09.2013, 09:54
Цитата Сообщение от maxii Посмотреть сообщение
если х=4, то операция y=++х, приведет к какому результату, какие значение будут иметь х,y
Code
1
2
x==5
y==5
Цитата Сообщение от maxii Посмотреть сообщение
какая разница между х++ и ++х
Пост- и пре- инкремент. Сначала получить значение переменной, а потом ее инкрементировать, либо наоборот, соответственно.
В вашем предыдущем примере если б было
Code
1
x=4, y=x++
то было бы
Code
1
2
x==5
y==4
Почитайте еще про UB.
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
27.09.2013, 10:06
Цитата Сообщение от BigLow Посмотреть сообщение
c = ++a = b = 2;
Для того что ты хочешь получить нужна такая запись (только Си++):
C++
1
c = ++(a = b = 2);
0
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 35
27.09.2013, 10:37
Цитата Сообщение от BigLow Посмотреть сообщение
Somebody, да, я понял. Переменная a сначала увеличивается на единицу а потом идет присваивание a = b;
ты сам себя в такой формулировке запутал, вот и не разобрался сразу в чём дело.
машине пофиг как ты что запишешь, а вот для человека нет.
0
3 / 3 / 1
Регистрация: 28.12.2011
Сообщений: 253
27.09.2013, 10:37
Мой вопрос касался использования в джава-но думаю там как в плюсах. Но как ни странно вы внесли ясность более в постинкремент. Ибо я думал что как раз как раз y будет 5, а х 4, ибо скорее воспринимал х++ более как операцию x+1, а не х=х+1. На примере вышло более доходшиво?
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
27.09.2013, 12:28
Цитата Сообщение от maxii Посмотреть сообщение
Подскажите если х=4, то операция y=++х, приведет к какому результату, какие значение будут иметь х,y. То есть хочеться знать какая разница между х++ и ++х, и как это влияет на y. То есть идет лиш присваевание?
y=++x; // if x=4 then x=5, y=5 like y=x+=1;
y=x++; // if x=4 then x=5, y=4 like y=x, ++x;

Цитата Сообщение от maxii Посмотреть сообщение
Мой вопрос касался использования в джава-но думаю там как в плюсах.
Относительно твоего вопроса (про префиксную и постфиксную формы) - да.
Относительно моего ответа в теме про ++(a=b) - нет - только Си++ поддерживает такой синтаксис, не Си, не С# и не Джава.
0
3 / 3 / 1
Регистрация: 28.12.2011
Сообщений: 253
27.09.2013, 22:11
А как тогда на яве. Что иначе. Кажется аналогично. В интернете смотрел. То есть результат не будет 5;5?
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
27.09.2013, 23:05
Цитата Сообщение от maxii Посмотреть сообщение
А как тогда на яве. Что иначе. Кажется аналогично. В интернете смотрел. То есть результат не будет 5;5?
Я же сказал, что будет то же самое:
Цитата Сообщение от Qwertiy Посмотреть сообщение
Относительно твоего вопроса (про префиксную и постфиксную формы) - да.
0
0 / 0 / 2
Регистрация: 18.03.2013
Сообщений: 19
28.09.2013, 16:25
сначала переменная a инкреминтиреутся , а потом она уже равна 2 .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2013, 16:25
Помогаю со студенческими работами здесь

Почему не срабатывает EOF
У меня стоит Visual Studio 2010 написал простенькую программу #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; int main() { int...

While срабатывает 2 раза, почему?
Сообственно код void main() { while(true){ cout&lt;&lt;&quot;|y|&quot;; _getch(); }

Почему не срабатывает getline() ?
Все привет почему то не срабатывает первый getline string comp_; cout &lt;&lt; &quot;1. Название: &quot; &lt;&lt; endl; getline(cin,...

Почему срабатывает rtl
Не могу понять, в чем ошибка. Брат делает задания из одной книги и на одной из функций VC++ падает. Я уже долго не работал с C++, может...

Не срабатывает инкремент
Вот этоткод работает в С++ я не могу его заставить в дельфи работать, как грузить в Эдит построчно с мемо- поля. var i : Integer; ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru