C++. програмирование немогу понять чему ровно .i=3 c=2.1)i+=++c + ++i2)i-=c-- +...

0 голосов
43 просмотров

C++. програмирование
немогу понять чему ровно .i=3 c=2.
1)i+=++c + ++i
2)i-=c-- + --i
обясните все пополочкам ато я немогу понять


Информатика (32 баллов) | 43 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

I += c   это как i = i + c
i -= c   это как i = i - c

Операция пост-инкремента(i++) возвращает значение переменной i до выполнения этого инкремента. Операция префикс-инкремента (++i) возвращает значение уже измененной переменной.
Т.е.
1).
i += ++c + ++i  это как 3 = 4 + (3 + 4)  ← обрати внимание на 4(i), что после выполнения префикс-инкремента, значение i изменилось всем выражении.
4 + (3 + 4) = 11

2) i-=c-- + --i это как 3 = 2 - (2 + 2)  ← обрати внимание, что значение переменной c изменится, только после операции с ней, т.е. в данном случае, в скобке, она останется без изменений, хотя в конечном итоге, ее значение все таки изменится. С переменной i наоборот, значение изменяется сразу и это значение изменяется во всем выражении.
2 - (2 + 2) = -2

(9.4k баллов)
0 голосов

--x означает, что сначала отнимается 1 от x и затем выполняются остальные действия.
x-- означает, что сначала делаются действия (с x-1), затем в конце отнимается 1 от x.

a -= b равноценно a = a - b
a += b равноценно a = a + b
Так же с умножением и делением

1) i += ++c + ++i равноценно i = (i+1) + ( (c+1) + (i+1) ) и c = c + 1
При i = 2, c = 3:
i = 10, c = 4
2) i -= c-- + --i равноценно i = (i-1) - ( (c-1) + (i-1) ) и c = c - 1
При i = 2, c = 3:
i = -3, c = 2

Удачи!

(107 баллов)