static修饰局部变量、全局变量、函数时的不同作用。

  1. 修饰局部变量-静态局部变量

没有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;
}

在这里插入图片描述

总结

  1. static修饰局部变量时,将使得局部变量“i”的作用域由局部变为全局,生命周期从“test”程序结束变为“全部程序”结束。

  2. 修饰全局变量-静态全局变量
    结论:
    一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,
    不能在其他源文件内使用。

  3. 修饰函数-静态函数
    结论:
    一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。

猜你喜欢

转载自blog.csdn.net/Zhou000815/article/details/109006093