,,C语言中static的使用介绍

,,C语言中static的使用介绍

大家好,本文主要讲一下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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: