"++i"와 "i++"은 어떻게 다른가요?

Twibap의 이미지

안녕하세요.

저는 ++i의 경우에 i값을 사용하기 전에 1 증가시킨 뒤 (증가한)i값을 사용하고, i++의 경우는 i 값을 사용 한 뒤 i값을 1 증가시키는 것으로 알고있습니다.

Stroustrup의 4장 시험해보기를 풀다가 의문이 생겼습니다.

// a부터 z까지 각 소문자에 해당하는 정수값 출력하기.
#include "std_lib_facilities.h"
char i = 'a';
while (i<='z')
{
cout << i <<'\t'<< int(i)< ++i; // (2)
}

여기서 (2)번을 없애기 위해 (1)을 이렇게 수정했습니다.

char i = 'a';
while (i<='z')
{
cout << i <<'\t'<< int(i++)< }

전자의 경우는 a부터 z까지 소문자와 정수를 제대로 출력하지만 후자의 경우는 b부터 z를 지나 '{' 까지 출력하면서 프로그램이 종료됩니다.

제가 알고있는것이 정확하다면 후자도 전자와 같은 결과를 출력해야하는데 그렇지 않네요.
어디가 문제인지 해설 부탁드리겠습니다 ㅠ.ㅠ