C Tutorial/Language/Variable Scope
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
- Variable can be defined in the block.
- The blocks are marked using { and } braces.
- The scope of the variable is in the block where it is declared.
- Variable defined in the outer block can be used in the inner block.
- 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