according to me following while loop should be infinite but it runs only thrice
main()
{
int i=3;
while(i--)
{
int i=100;
i--;
printf("%d..",i);
}
}
it outputs 99..99..99
but according to me it should run infinite times as every time control enters while loop it gets value 100.so it will never reach zero.
just to experiment i replaced int i=100; with i=100; in side the while loop and now it runs infinite times..WHY???
The variable
ithat checks the condition is the one you declared inmain()not the one inside the loop.Both are different variables you are confusing them as one, the compiler doesn’t get confused as easily as you were.
Inside the loop
irefers to the one you declared inside the{}but outside the{}theirefers to the one declared inmain()