++i is preincrement, it is done before anything in the expression it appears.
i++ is postdecrement, it is done after anything in the expression it appears.
in the first loop, you'll run from 0 to 9. In the second, it will run from 1 to 9.
My advice: avoid both of them (exceptions may be i++; or the first loop). Too tricky to look for in the expression.
I passed a long day debugging
myArray[(i++)%16] = data
and trying to find why it did try to write to data[16] sometimes