for(int i = 0 ; i<n ; i++) { do something }
has equivalent while loop :
int i = 0;
while(i<n) {
do something
i++;
}
Now,
for(int i = 4 ; false ; );
print i;//prints 4
for(int i = 7 ; false ; );
print i;//prints 7
according to my understanding, must be equivalent to :
int i = 4;
while(false);
int i = 7;
while(false);
which is two times declaration for 'i'. And, obvious error.
Now, Why there is no redeclaration error for 'i' in for loops?
code ran after giving two warnings :
warning: name lookup of 'i1' changed for new ANSI 'for' scoping
warning: using obsolete binding at 'i1'