C语言变量的作用域和生存期问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言变量的作用域和生存期问题相关的知识,希望对你有一定的参考价值。
有以下程序
int fun(int x[],int n)
static int sum=0,i;
for(i=0;i<n;i++) sum+=x[i];
return sum;
main()
int a[]=1,2,3,4,5,b[]=6,7,8,9,s=0;
s=fun(a,5)+fun(b,4);printf("%d\n",s);
程序执行后的输出结果是: 60
问: i是一个静态存储类的局部变量 在第一次调用fun函数时,i的值不就变成了4吗? 第二次调用时 for循环中的条件i<n,即i<4不就不成立了么? 怎么最后的答案是60,而不是15呢?
在c语言中 分别从变量的作用域和生存期来分析变量各都有哪些种类
第二次调用时for循环时,按for循环的执行过程,先执行括号中第一个表达式i=0,将i变量的值由前一次调用fun函数时的4重新赋值为0。 参考技术A 局部变量 全局变量
auto regester static extorn
动态存储 静态存储
以上是关于C语言变量的作用域和生存期问题的主要内容,如果未能解决你的问题,请参考以下文章