- 修饰局部变量-静态局部变量
没有static修饰的局部变量
源代码及运行结果
#include<stdio.h>
#include<windows.h>
void test()
{ int i = 0, j;
for (j = 0; j< 2; j++)
{
i++;
printf(“i=%d\n”, i);
}
}
int main()
{
int k = 0;
for (k = 0; k < 10; k++)
{
test();
}
system(“pause”);
return 0;
}
有static修饰的局部变量
源代码及运行结果
#include<stdio.h>
#include<windows.h>
void test()
{ static int i = 0, j;
for (j = 0; j< 2; j++)
{
i++;
printf(“i=%d\n”, i);
}
}
int main()
{
int k = 0;
for (k = 0; k < 10; k++)
{
test();
}
system(“pause”);
return 0;
}
总结
-
static修饰局部变量时,将使得局部变量“i”的作用域由局部变为全局,生命周期从“test”程序结束变为“全部程序”结束。
-
修饰全局变量-静态全局变量
结论:
一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,
不能在其他源文件内使用。 -
修饰函数-静态函数
结论:
一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。