在线等,分析程序的输出结果
#include<stdio.h>
fune(int a,int b)
{static int m,i=2;
i =m 1;
m=i a b;
return(m);
}
void main()
{int k=4,m=1,p;
P=func(k,m);
printf(“%d,”,p);
p=func(k,m);
printf(“%d
”,p);
}
解决方法
首先请允许我提个错误:那个自定义函数是func还是fune呢?
输出结果为:8,17.
分析:
第一次调用func时,函数里面的m和i分别为0和2, 传进来的a 和b分别为4和1.
i = m 1 后,i=3,
m=i a b 后 , m = 8.
则第一次 p=8.
第二次调用func时,函数里面的m和i为上次计算出来的3和8,(因为m和i是static类型的), 传进来的a 和b还是为4和1.
i = m 1 后,i=12,
m=i a b 后 , m = 17.
则第二次 p=17