<p>In C, what is the difference between using <code>++i</code> and <code>i++</code>, and which should be used in the incrementation block of a <code>for</code> loop?</p>

```
++i
```
increments the value, then returns it.
```
i++
```
returns the value, and then increments it.
It's a subtle difference.
For a for loop, use
```
++i
```
, as it's slightly faster.
```
i++
```
will create an extra copy that just gets thrown away.