「基礎から学ぶC++の教科書」という本で

大部分の演算において、被演算子の評価順序は決まっていません。
たとえば、式A+式Bという演算があったときに、式Aと式Bのどちらが先に評価されるかは決まっていません。
ですから、評価の順序に依存するようなコードを書かないように注意してください。次のコードの実行結果は、おそらく納得できるものにはならないでしょう。

  int n = 1;
  n = --n / --n;
  cout << n << endl;

と書いてありました。
これを実際に実行してみると1と表示され、確かに予想していなかった結果でした。

ただ、これは評価順序が不定だからという理由では納得できません。

何故なら左から評価すれば、

n=0/-1

なので、0。

右から評価すれば

n=-1/0

で0で除算する事になりエラーとなり、
評価順序がどちらの場合も1にはならないように思えるからです。

何故1になるのでしょうか?

「同じ数/同じ数」という形で評価されて1となっていると仮定すると、
同時に評価されていると考える事できますが、
そのような事はあるのでしょうか?