#include<stdio.h> int f(int n) { static int k,s;

#include<stdio.h>intf(intn){staticintk,s;n--;for(k=n;k>0;k--)s+=k;returns;}voidmain()... #include<stdio.h>
int f(int n)
{ static int k,s;
n--;
for(k=n; k>0;k--)
s +=k;
return s;
}
void main()
{ int k;
k=f(3);
printf("%d,%d", k,f(k));
展开
 我来答
糖酥棍儿
2011-07-03 · TA获得超过692个赞
知道小有建树答主
回答量:393
采纳率:0%
帮助的人:386万
展开全部
运行结果应该是 3,6
static int k,s;
这个是函数内 局部静态变量的定义: 对静态变量来说变量定义和内存的分配仅执行一次,也就是说第一次被调用的时候,执行该操作,以后再调用就不执行 static int k,s;
静态变量默认的初始值应该 都是 0
静态变量对于的内存空间,直到整个程序结束才会被释放,而且 每次取到的静态变量的值都是上一次操作的最后一次赋值;
k=f(3); 进入函数后 执行完循环 for(k=n; k>0;k--) 后,静态变量 s=3;k=0; 函数返回 s的值
即: k=f(3)=3
f(k),k是局部变量 k=3, f(3) ,执行循环 由于静态变量 s=3 最后 s=6 函数返回s
即: k=f(3)=6
最后程序输出 3,6
c545355802
2011-07-03
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
你是想要干吗?
追问
简单过程给我写一下,谢谢~~
追答
f() 是个函数,先从main()方法入手,在定义了一个变量K,令k等于f(3),就跳到了上面的函数f去了,里面的n等于3,运行里面的for循环,得到s, return 就是把这个s返回给这个函数,就可以得到k了
感觉这个还有点问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式