"simple" for loops can be quite complex and convoluted.
Not many people use that syntax for a for loop, as it's not as intuitive as putting the assignment (or using the iterator variable directly) inside the loop itself.
While it's perfectly valid, it's mainly there as a demonstration of how things in C aren't always what they appear. What you think may be missing in C may just be doable in another way - a not very obvious way.
In general though, for things like that, it's better to be more long winded and do it as specific steps within the loop - that way when you come to look at it again in the morning you know what's going on.