关于对 static 的理解
时间:2010-04-22 来源:snow888
代码一
#include <stdio.h> |
此段代码编译后执行的结果如下:
6
8
10
我们再来看如下代码:
#include <stdio.h> |
这段代码编译hou执行的结果是:
6
7
8
为啥会出现如此情况呢?
其实就在于 static 关键字,它使得第一段代码在两次调用 test 函数时, l 的值保留为前此执行后的结果.
这里面需要注意的是: 尽管 static int l = 5; 在申明这个变量时就已经对其进行了赋值,但由于第二次调用 test 时,该变量并没有第二次申明,因此紧随其后的 l = 5 ; 的语句在第二次调用时并没有被执行,为了更好的说明上面的问题,我们再来看如下的第三段代码:
#include <stdio.h> |
编译后执行的结果如下:
6
7
8
这第三段代码与第一段代码的不同之处在于:对 l 的赋值不是在申明时赋值,而是在申明以后赋值的.
由此我们可以得出结论:
带有 static 关键字的变量申明,当第二次被调用的时候,其变量不会被再次申明,包括同时执行的赋值操作也同样不会被执行.