i++ は 値を渡してから 加算。
++i は 加算してから 値を渡す。
num[i++] は num[ 値くれ ]、i++ の値ってなによ? と読めるから 加算前の値になるべ。

int a = 0;
int b = 0;
int a1 = a++;
int b1 = ++b;

とやって違いを見るべし