在c语言中 分别从变量的作用域和生存期来分析变量各都有哪些种类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在c语言中 分别从变量的作用域和生存期来分析变量各都有哪些种类相关的知识,希望对你有一定的参考价值。

第二次调用时
for循环时,按for循环的执行过程,先执行括号中第一个表达式i=0,将i变量的值由前一次调用fun函数时的4重新赋值为0。
参考技术A 局部变量 全局变量
auto regester static extorn
动态存储 静态存储

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呢?

参考技术A 执行f1时a不存在,如果定义的是静态变量,就在生存期中,如果是默认的动态变量,就不在 参考技术B 第二次调用时 for循环时,按for循环的执行过程,先执行括号中第一个表达式i=0,将i变量的值由前一次调用fun函数时的4重新赋值为0。 参考技术C for(i=0;i<n;i++) 这个里面又将 i 设置为0了啊。 参考技术D i被重新赋值为0

以上是关于在c语言中 分别从变量的作用域和生存期来分析变量各都有哪些种类的主要内容,如果未能解决你的问题,请参考以下文章

php变量的作用域和生存期

8——对象的作用域,生存期,……

c语言中的变量总结

JS块级作用域和私有变量实例分析

C语言中,哪种存储类的作用域与生命周期是不一致的?

JAVA语法