#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)); 展开
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)); 展开
2个回答
展开全部
运行结果应该是 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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询