#include<stdio.h>
fun(int a)
{ int b=0;
static int c=3;
b=b+1;c+=2;
return (a+b+c);
}
main()
{ int a=2,j;
for(j=0;j<3;j++,a++)
printf("%d,",fun(a));
}
程序分析:
变量b是自动变量,每次调用时,b的初值都被重新赋为0;变量c是一个静态局部变量,每次调用函数fun时,其值都使用上一次调用后c的值,因此先后3次调用时,c的值分别是5,7,9,变量a的值分别是3,4,5.据此,第一次2+1+5=8,第二次3+1+7=11,第三次4+1+9=14.