C Tutorial/Language/Variable Scope
Inner variable shadows outer variable
#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;
}
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.
#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);
}
value of i is 0 value of i is 1 the value of i is 10