c语言static?

有如下程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}voidm... 有如下程序:
int fun(int x[ ],int n)
{
static int sum=0,i;
for(i=0;i<n;i++) sum+=x[i];
return sum;
}
void main( )
{
int a[ ]={1,2,3,4,5}, b[ ]={6,7,8,9}, s=0;
s=fun(a,5)+fun(b,4);
printf("%d",s);
}

问一下大家 这个i怎么不保留上一次的值
展开
 我来答
云南新华电脑学校
2020-10-30 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部
您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!展开全部
static 用来说明静态变量。
1、如果是在函数外面定义的,那么其效果和全局变量类似,即static说明的变量可以在当前c程序文件中使用。
2、如果是在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次被初始化,于是,这个变量的取值就会一直保存着,我们再次调用该函数时,仍是保存的上一次函数调用时保存的结果。
扩展资料:
c语言中的static有三个主要作用:
1、隐藏性。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。
2、static可以保持变量内容的持久,当static定义变量在函数内部时,改变量值的生命周期和全局变量相同。非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
追问
这个是在函数外部定义的?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式