blogger Indonesia

Follow judhyns blog

SCOPE OF VARIABLES

Introduction

In C you can define a variable in the block. The blocks are marked using { and } braces. The blocks can also be defined using the for statement. The scope of the variable is in the block in which it is declared, meaning that you can use that variable anywhere in the block. Even if some block is declared in that block, you can use that variable. When the variable is referred in the block and if it can be resolved using two definitions, then the nearest definition has more precedence. So the variable is interpreted according to the nearest definition. Even if the two definitions define two different data types for variables, they are accepted.

Program

#include  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.

Points to Remember

  1. In C, you can define variables in the block, which is demarcated by using { and } braces. The variable has the scope inside the block in which it is declared.

  2. When the variable is resolved using two definitions, the nearest definition has more precedence.


No comments:

feed

PR Check

activesearchresults

judhyn's blog

 

http://www.judhyn.blogspot.com | |