Tuesday, March 22, 2011

Program for scope of variablers with Explanation


Program

#include <stdio.h>
main()
{      \\ Block 1
    int i = 10;      \\ A

    {         \\ Block 2
        int i = 0;             \\ B
        for( i=0;i<2;i++)   \\ C
        {
               printf("value of i is %d\n",i);
        }      \\ End of block 2
    }
    printf("the value of i is %d\n",i);   \\ D
}   \\ End of block 1

Explanation

  1. The statement block 1 defines the start of block 1.
  2. The statement ‘end of block 1’ defines the end of block 1.
  3. Statement A defines variable i which has the scope in the entire block 1.
  4. The statement block 2 defines the start of block 2.
  5. The statement ‘end of block 2’ defines the end of block 2.
  6. Statement B defines variable i which is entirely in block 2.
  7. The for loop refers i, which can be resolved using two definitions: statement A and statement B.
  8. 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.
  9. 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