C Tutorial/Language/Variable Scope

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Inner variable shadows outer variable

<source lang="cpp">#include <stdio.h> int main(void) {

 int count = 0;                                
 do
 {
   int count = 0;                
   ++count;                      
   printf("\ncount = %d ", count);
 }
 while( ++count <= 8 );  /* This works with outer count */
 /* this is outer */
 printf("\ncount = %d\n", count);
 return 0;

}</source>

count = 1
     count = 1
     count = 1
     count = 1
     count = 1
     count = 1
     count = 1
     count = 1
     count = 1
     count = 9

Scope of variables

  1. Variable can be defined in the block.
  2. The blocks are marked using { and } braces.
  3. The scope of the variable is in the block where it is declared.
  4. Variable defined in the outer block can be used in the inner block.
  5. The nearest definition has more precedence.


<source lang="cpp">#include <stdio.h> 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);

}</source>

value of i is 0
      value of i is 1
      the value of i is 10