变量的作用域

    位于一对花括号之间的所有语句成为一个代码块。任何在代码块的开始位置声明的标识符都具有代码块作用域,表示它们可以被这个代码块中的所有语句访问。
    当代码块处于嵌套状态时,生命与内层代码块的标识符的作用域到达该代码块的尾部便告终止。然而,如果内层代码块有一个标识符的名字与外层代码块的一个标识符同名,内层的那个代码块就将隐藏的标识符——外层的那个标识符无法在内层代码块中通过名字访问。 

代码:
#include<stdio.h> 
void main()
{
    int count=0;

    do
    {
        int count=0;
        ++count;
        printf("%d ",count);
    }while(++count<=8);

    printf("\n%d\n",count);
}

运行结果:
 
        有两个叫count的变量,但是在循环的内部,本地掩盖main()中的count。当使用名称count时,编译器会假设使用的是当前块中声明的那个变量。在while循环内,只有count的本地版本,所以递增这个变量,循环块内显示的count的值永远是1,因为在每次循环中,都创建、初始化、递增和删除count变量。它只存在于从声明它的语句到这个循环结束的括号为止。一旦退出这个循环,外部的count就可以访问了,最后一个printf()显示它在循环结束时的值9.
 





posted @ 2015-06-28 14:35  vitah  阅读(185)  评论(0编辑  收藏  举报