分析代码
#include <stdio.h>
void fun(int i)
{
static int value = i++;
printf("%d\n",value);
}
int main()
{
fun(0);
fun(1);
fun(2);
fun(100);
return 0;
}
程序输出为:
0
0
0
0
是因为value是静态类型,只会定义一次。也就是说,不管调用fun()这个函数多少次,static int value = i++这个定义语句只会在第一次调用的时候执行,由于第一次执行的时候i = 0,所以,value也就被初始化成0了。以后调用fun()函数都不会在执行这条语句。
本文通过一个C语言示例程序,详细解释了静态局部变量的工作原理。重点介绍了如何理解静态局部变量在函数多次调用过程中的行为特性。
501

被折叠的 条评论
为什么被折叠?



