while(*dst++ = *src++);


  while(*dst++ = *src++);

上の行は常に正しく(思った通りに)実行されるのかなぁ.


プログラミング言語C++第三版 §6.2.5には

「後置演算子を使えば,先に値を使ってからインクリメントすることができる」とあった.


てことは,


  // while(*dst++ = *src++);

  while(*dst = *src){
    // 下二行は順不定
    dst++;
    src++;
  }
  // 下二行は順不定
  dst++;
  src++;

には必ずなるということでいいのかな.