И еще вопрос. Если эта тема такой большой боян, и все про все уже знают, тогда почему в обсуждении так много разных мнений и неразберихи? Соответственно я не пойму зачем портить автору харизму, не нравится не читайте.
sequence point очень занятная тема, но к данному примеру она не имеет отношения.
Тут значение имеет то что получается в результате операции.
В c++ результатом операции ++i является само i, а в java результатом является значние, но не сама переменная. И в вопрос можно сформулировать так: почему приняты настолько разные решения?
Этот конкретный пример врятли напишет в своем коде уважающий себя программист, но, нарпимер, когдато я думал что есть разница между такими вот выражениями:
for (int i=0; i<length; ++i)
for (int i=0; i length; i++)
и в такое заблуждение меня ввел еще университетский курс и всякого рода книжечки. А ведь выполнение ++i или i++ не влияеть на последовательность и количество самого цикла.
Иногда весьма полезно понимать что на что может влиять.
не знаю как вам, а мне смешно.
for (int i=0; i<length; ++i)
for (int i=0; i<length; i++)
Тут значение имеет то что получается в результате операции.
В c++ результатом операции ++i является само i, а в java результатом является значние, но не сама переменная. И в вопрос можно сформулировать так: почему приняты настолько разные решения?
Этот конкретный пример врятли напишет в своем коде уважающий себя программист, но, нарпимер, когдато я думал что есть разница между такими вот выражениями:
for (int i=0; i<length; ++i)
for (int i=0; i length; i++)
и в такое заблуждение меня ввел еще университетский курс и всякого рода книжечки. А ведь выполнение ++i или i++ не влияеть на последовательность и количество самого цикла.
Иногда весьма полезно понимать что на что может влиять.
(++i) + (++i)
1) ++i + ++i (i=5)
2) i + ++i (i=6)
3) i + i (i=7)
вариант два
1) ++i + ++i (i=5)
2) 6 + ++i (i=6)
3) 6 + 7
Внимание вопрос!
Какой вариант правилен?