静态类型声明的代码行是否只读一次?



因此,如果我在函数中声明静态类型,每次再次调用该函数时,类型的内容都不会再次声明。我的问题是,想象一下下面的代码:

1 int fun(int n){
2 static int a = 4;
3 return (a+=n);
4
5 }

所以,第一次调用fun()它将从第一行读取,但是从n次调用n>=2开始,它将从第三行读取,忽略第二行,对吧?

那么fun()可以等价于fun2()吗?→(变量现在是全局的)

0  int a = 4;
1 int fun2(int n){
2
3 return(a+=n);
4
5 }

简而言之,它们在功能上是相同的。文件作用域变量和static本地变量之间的主要区别在于名称可访问的位置。

最新更新