#include <stdio.h>
void AddOne()
{
auto int a=1;
a=a+1;
printf("%d \n",a);
//auto变量
}
void AddOne1()
{
static int a=1;
a=a+1;
printf("%d \n",a);
//static变量
}
int main ()
{
printf("auto变量效果 \n");
printf("第一次调用:");
AddOne();
printf("第二次调用:");
AddOne();
/*
函数中的auto变量:
函数执行完毕后会释放 auto变量 占用的 存储。
因此每次 初始化auto变量 时都会生效。
*/
putchar('\n');
printf("static变量效果 \n");
printf("第一次调用:");
AddOne1();
printf("第二次调用:");
AddOne1();
}
//函数中的static变量,只在第一次初始化操作生效,即使函数已经执行完毕,也一直保持存储
/*
局部变量默认修饰为auto,因此auto关键字可以省略不写。
局部变量中的auto变量与static变量是相对而言的。
*/
运行效果: