auto关键字用于定义一个局部变量为自动的,这意味着每次执行到定义该变量时,都会产生一个新的变量并且对其进行初始化。
auto关键字是可以省略的,如果不特别指定,局部变量的存储方式默认为自动的
#include<stdio.h>
void AddOne()
{
int iInt=1;
iInt=iInt+1;
printf("%d\n",iInt);
}
int main()
{
printf("");
AddOne();
printf("");
AddOne();
return 0;
}
static变量
对于局部变量static变量是与auto变量相对的,在语句执行期间,static变量将始终保持它的值,并且初始化操作只在第一次执行时起作用。在之后的运行中,变量将保持语句块上一次执行时的值。
#include<stdio.h>
void AddOne()
{
static int iInt=1;
iInt=iInt+1;
printf("%d\n",iInt);
}
int main()
{
printf("第一次调用:");
AddOne();
printf("第二次调用:");
AddOne();
return 0;
}