Say I want to print a message in C five times using a for loop. Why is it that if I add a semicolon after for loop like this:
for (i=0;i<5;i+
Semicolon is a legitimate statement called null statement * that means "do nothing". Since the for loop executes a single operation (which could be a block enclosed in {}) semicolon is treated as the body of the loop, resulting in the behavior that you observed.
The following code
for (i=0;i<5;i++);
{
printf("hello\n");
}
is interpreted as follows:
for (i=0;i<5;i++){}As you can see, the operation that gets repeated is ;, not the printf.