Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Вычислить


Автор: eriomenko 23.9.2010, 12:48
Вычислить значения выражений. Объяснить полученные результаты. как сделать и что вообще это означает? smile 
  • n+++m
  • n-- >m
  • m-- >m

Автор: Fortnox 23.9.2010, 14:31
n+++m можно расписать как (запись берем так: int a = n+++m):
Код

int n = 1;
int m = 1;
int a = n + m; n = n +1;

Запись означает - присвоить a значение n, увеличить n на 1, прибавить к а значение m.

n-- >m можно расписать как:
Код

int n = 1;
int m = 1;
bool res = n > m;
n = n - 1;
// res равно false
// n равно 0;

Уменьшить n на 1, но в сравнении использовать старое значение n = 1.

m-- >m можно расписать как:
Код

int n = 1;
int m = 1;
int a = m;
m = m - 1;
bool res = a > m;
// res равно true
// a равно 1
// m равно 0;

Уменьшить m на 1, и тогда, слева в сравнении будет старое значение m (1), а справа 0.

Автор: eriomenko 23.9.2010, 14:51
Fortnox, большое спасибо!!!
 smile 

Автор: Sartorius 23.9.2010, 15:55
Fortnox, это ub. Ответ во всех случаях - неизвестно
http://programmers-notes.blogspot.com/2009/01/sequence-points-undefined-behaviour.html

Автор: Fortnox 23.9.2010, 16:19
Sartorius, эво оно как. Спасибо за разъяснение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)