I'm sure once someone explains this to me it will all seem rational but for right now the explanation for the following output escapes me...

#include <iostream>
int main(void) {
int i(0);

cout << i << ++i << i++ << endl;
}

output....

220

Why is it not 011?