大家好,本文主要讲一下C语言中静态的使用介绍。有兴趣的同学过来看看。如果对你有帮助,记得收藏起来下次浏览。
目录
1.static可以修改局部变量2 .static可以修改全局变量3.static可以修改函数摘要。
1.static 可以修饰局部变量
让我先看看这段代码。
# includestdio.h
无效测试()
{
int a=1;
a=a 1;
printf('%d ',a);
}
int main()
{
int I=0;
while (i 10)
{
test();
我;
}
返回0;
}
你认为输出结果是什么?
那为什么结果是22222222?
因为局部变量A进入这个范围,这个范围被创建和销毁,所以结果是2。
当我们添加静态时会有什么结果?
那为什么和静态的结果不一样?
我们来研究一下静电是如何工作的。
我们的记忆分为三类。
我们的局部变量放在堆栈区域。
而static把A放在静态区,静态区的变量在他的范围之外的时候不被破坏。
对我们来说比较可能更直观。
所以当static修改一个局部变量时,它实际上改变了局部变量的存储位置。
静态局部变量放在静态区,放在静态区的变量在超出范围时不会被破坏,相当于延长了生命周期。
补充变量的范围不变,但生命周期延长。
2. static 可以修饰全局变量
让我们创建另一个源文件
全局变量的范围是整个项目。
如果要引用另一个源文件的函数,这里就要说关键字extern了。
画
静态可以修改全局变量。如果我们在全局变量之前添加static会发生什么?
此时,将会报告一个错误。
一个全局变量具有外部链接属性的 (就是可以被其他源文件引用)但是被static 修饰后外部链接属性就变成了内部链接属性 只能在自己所在的源文件内部使用不能在其他文件内部使用
所以再次调试的时候就会报错
被static修改的全局变量的本质是外部链接属性变了,而不是它的范围变小了。
静态修改全局变量意义。如果你定义了一个全局变量,别人可以随便用extern来使用。
如果不想让别人看到,可以用静电。
3.static 可以修饰函数
让我们用另一个源文件创建一个函数,如图所示。
使用关键字extern声明调试结果。
如果我们在这里给函数添加static会发生什么?
其实一个函数本身就有一个外链属性。被static修改后,外部链接属性变成了内部链接属性,只能在source 2内部使用。c .不能使用其他源文件,使用时范围变小。
我们可以发现static修改全局变量的方式和修改函数一样。
总结
当我们使用了一个超出他范围的局部变量,不想让它被破坏的时候,我们可以在下次进来的时候,当它还在的时候,用static修改它。
当我们希望一个完整的变量在其他地方的源文件中使用时,我们也可以使用static来修改它。
当我们写一个函数自己用的时候,如果不想让别人引用,也可以用static来修复。
关于静态在C语言中的使用介绍的这篇文章就到这里了。关于C语言中静态的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。