把代码补全一点,主要是注意返回类型!
#include "stdio.h"
int z=5;
void f()
{ static int x=2; int y=5;/* x为静态变量,分配了以后直到程序结束,y没实际用到*/
x=x+2; z=z+5;
y=y+z;
printf ("%5d%5dn",x,z);
}
int main()
{ static int x=10; int y;/* x为静态变量,分配了以后直到程序结束,和上面的x不同*/
y=z;
printf("%5d%5dn",x,z); /*这时x=10,z=5*/
f();/*这时进入函数f(),函数里面的x=4,z=10*/
printf("%5d%5dn",x,z);/*这时main()函数的x=10,z=10*/
f();/*这时进入函数f(),函数里面的x=x+2=4+2,z=15*/
return 0;
}
运行结果
10 5
4 10
10 10
6 15
其实关键是静态变量的作用域问题
#include "stdio.h"
struct prob
{ char *a;
int b;
} x[]={ "Zhang San",19,"Li Si",21,"Wang Wu",20};
int main()
{ int i,m1,m2;
m1=m2=x[0].b;
for (i=1; im1) m1=x[i].b;/*m1存放最大的年龄*/
else if (x[i].