NetRaider, в контексе странного примера (i=i++) это может быть и неимеет смысла. Вот можешь ли сказать какой по стандарту (какому именно? О чем ты гоаорил? О ANSI С?) будет порядок вычисления для "a=b[j]" - когда вычисляется "i", а когда "j" (рассматривай это не как переменные, а как выражения)?
1. модификация более одного раза скалярного объекта между двумя точками следования порождает неопределенное поведение.
рассморим выражение a[i]=b[j]
Здесь с точками следования все нормально, т.е. нет неопределенного поведения. НО, предсказать результат(порядок выполнения) невозможно, потому что
а) В рамках одного выражения порядок вычисления подвыражений не определен.
б) Порядок вычисления параметров функции не определен.
Т.е. неопределенное поведение в примере отсутствует но результат зависит от порядка вычисления. Хотя в примере все равно каков порядок выцисления выражения i или j - как не переставляй одно и тоже. В этом отношении пример неудачен, поскольку результат не зависит от порядка вычисления.
Но в выражении a[i]=a[i++] [b]результат зависит от порядка вычисления подвыражений, заключенных в '[]'[/b]. Хотя здесь, в отличии от выражения i=i++(порождающего неопределенное выражение), нет undefined behavior(в предыдущем посте я написал что есть - это описка)