Обновить
0
0
soul@soul

Пользователь

Отправить сообщение
Удивительное рядом. Shift - убийца CapsLock.
не знаю как вам, а мне смешно.
(исправленный код)
for (int i=0; i<length; ++i)
for (int i=0; i<length; i++)
И еще вопрос. Если эта тема такой большой боян, и все про все уже знают, тогда почему в обсуждении так много разных мнений и неразберихи? Соответственно я не пойму зачем портить автору харизму, не нравится не читайте.
sequence point очень занятная тема, но к данному примеру она не имеет отношения.
Тут значение имеет то что получается в результате операции.
В 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

Внимание вопрос!
Какой вариант правилен?

Информация

В рейтинге
Не участвует
Зарегистрирован