It's a loop: it has three parts:
for ( A ; B ; C)
A is the initial set up. In your case is sets "c" to 1 before it enters the loop.
B is the test that is performed each time the code is about to go round the loop. If it is true, then the code is executed. If not, the loop ends. In your case it checks that "c" is is still less than or equal to twice the rows minus one.
C is the step change - it defines what happens at the end of the loop, before the test is repeated to ensure that the loop ends when it is supposed to. In your case, it just adds one to "c"
So if rows was 2, the code in the loop would be executed 3 times. (2 * 2 - 1 == 4 - 1 == 3, so when c exceeds 3 the loop will stop.)