在C语言中提供的存储类型说明符有auto,extern,static,register,说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销。Auto
在函数内部定义的变量成为局部变量。局部变量称为自动变量,这就与使用可选关键字a u t o定义局部变量这一作法保持一致。局部变量仅由其被定义的模块内部的语句所访问。换言之,局部变量在自己的代码模块之外是不可知的。切记:模块以左花括号开始,以右花括号结束。
对于局部变量,要了解的最重要的东西是:它们仅存在于被定义的当前执行代码块中,即局部变量在进入模块时生成,在退出模块时消亡。
定义局部变量的最常见的代码块是函数。
请见以下代码:
#include "stdio.h"
main()
{
int i,num;
num=2;
for (i=0;i<3;i++)
{ printf("The num equal %d \n",num);
num++;
{
auto int num=1;
printf("The internal block num equal %d \n",num);
num++;
}
}
}
运行的结果为:
其实现在都不用打上auto了,编译器默认为auto的
不信可以把auto删除试试。