在以下代码中,有两个名为count
的变量。
在do-while循环块内部,局部变量将“隐藏”main()
块中存在的count
变量版本。
编译器将假定当使用count
时,表示在当前块中声明的那个。在do-while循环中,只能访问本地版本的count
变量。循环块内的printf()
显示本地count
值,该值始终为1
。
退出循环后,外部count
变量变为可见,最后一个printf()
将循环中的最终值显示为6
。
示例代码
#include <stdio.h>
int main(void)
{
int count = 0; // 在外部块中声明
do
{
int count = 0; // 这是另一个名为count的变量
++count; // 这适用于内部计数
printf("count = %d\n", count);
} while (++count <= 5); // 这适用于外部计数
printf("count = %d\n", count); //内部 count 已经销毁,这是外部count变量
system("pause");
return 0;
}
执行上面示例代码,得到以下结果:
count = 1
count = 1
count = 1
count = 1
count = 1
count = 1
count = 6