static关键字
#include <stdio.h>
int d=1;
int fun(int p)
{
static int d=5;//d=5 //该行只做一次初始化
d+=p;//d=5+1=6 //d=6+9=15
printf("d=%d\n",d);
return d;
}
void main()
{
int a=3;
int b1,b2,b3;
//d=1
//fun(1)=6
//fun(3+6)=15
b1=fun(d);
b2=a+b1;
b3=fun(b2);
//b3=fun(a+fun(d));
printf("%d %d %d\n",b1,b2,b3);
}
auto关键字
#include <stdio.h>
int d=1;
int fun(int p)
{
auto int d=5;//d反复被初始化为5
d+=p;//d=5+1=6 //d=5+9=14
printf("d=%d\n",d);
return d;
}
void main()
{
int a=3;
int b1,b2,b3;
//d=1
//fun(1)=6
//fun(3+6)=15
b1=fun(d);
b2=a+b1;
b3=fun(b2);
//b3=fun(a+fun(d));
printf("%d %d %d\n",b1,b2,b3);
}
auto关键字和static关键字