#include
main()
{
int i = 10;
{
int i = 0;
for( i=0;i<2;i++)
{
printf("value of i is %d\n",i);
}
}
printf("the value of i is %d\n",i); }
Explanation :
- The statement block 1 defines the start of block 1.
- The statement ‘end of block 1’ defines the end of block 1.
- Statement A defines variable i which has the scope in the entire block 1.
- The statement block 2 defines the start of block 2.
- The statement ‘end of block 2’ defines the end of block 2.
- Statement B defines variable i which is entirely in block 2.
- The for loop refers i, which can be resolved using two definitions: statement A and statement B.
- Since the definition of statement B is nearest, the variable is referred using that definition, so the for loop modifies the value of i at statement B.
- Variable i at statement A and variable i at statement B are two independent variables even though they have the same name. Statement D is outside block 2, so it prints the value of variable i in block 1.
No comments:
Post a Comment