+ 1
Explain the Output
#include <stdio.h> int main() { int i; for ( i=0; i<5; i++ ) { int i = 10; printf ( "%d ", i ); i++; } return 0; } Here answer is 5 times 10 can anyone explain how?
4 Answers
+ 4
the scope of the inner i(int i = 10) is only within the for loop and has got nothing to do with the for loop initialize, condition and increment part.
Why five 10 as output?
so basically after we print i inside the for loop, i is incremented but notice in the next iteration again we are assigning i with 10 (this line i = 10).
hence we have 10 10 10 10 10.
do read and play with scope of variable to know what's going on behind the scene.
Please avoid duplications
https://www.sololearn.com/Discuss/2504162/?ref=app
+ 2
I would first recommend you to avoid using same variable name to prevent misunderstanding. You have <i> in main function block, another <i> as the for-loop counter, and yet another <i> inside the for-loop body. But I can understand if that came from a challenge.
0
First you should understand the difference between int i (outside the for loop) , and 2nd int i (inside the for loop) this printing 5 times becoz you've give the condition to for loop is less than 5.
Postfix isn't working many times.