Хотелось бы услышать именно от гуру почему операция инкремента справа и слева переменной дает разные результаты ? Я недоумеваю ))
EuGen
Отправлено: 04 Июня, 2012 - 09:41:20
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Постинкремент, в отличии от преинкремента, сохраняет старое значение во временную переменную и увеличивает переданную по ссылке переменную, но при этом возвращает старое значение.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Мелкий
Отправлено: 04 Июня, 2012 - 09:44:07
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
sKaa пишет:
Хотелось бы услышать именно от гуру почему операция инкремента справа и слева переменной дает разные результаты ?
Постинкремент сохраняет старое значение во временную переменную, увеличивает переданную по ссылке переменную, но возвращает старое значение.
если перевести на цифры то так :
tmp = 5; return 5+1 + 5+1 (=12); 12++ (=13); 13++ (=14);
eai
Отправлено: 08 Июня, 2012 - 12:20:09
Частый посетитель
Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009 Откуда: Петроград
Помог: 10 раз(а)
Какая то особая нетривиальная интерпретация прединкремента в С# и Perl
Перл как усегда выдавал перлы
sKaa
Отправлено: 08 Июня, 2012 - 12:20:39
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
Во всяком случае на php, javascript и даже node.js об этой проблеме можно не думать - я проверил
EuGen
Отправлено: 08 Июня, 2012 - 12:40:06
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Цитата:
Perl — это единственный язык, программы на котором выглядят одинаково до и после RSA-шифрования.
Keith Bostic. Программист, создатель Sleepycat, конрибьютор BSD
По поводу PHP - разъяснения выше.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Мелкий
Отправлено: 08 Июня, 2012 - 12:43:36
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Самое весёлое в этом то, что на С++ результаты зависят от того, каким компилятором собирали
Мораль - всегда ставьте скобки, когда есть даже тень неуверенности в порядке выполнения операций.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.