C语言中的static的用法(超级详细)_static在c语言中的用法-程序员宅基地

技术标签: c语言  小知识点  

作者:云小逸
个人主页:[云小逸的主页]
码云:云小逸 (YunXiaoYi003)
motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在!学会自己和解,与过去和解,努力爱自己。希望春天来之前,我们一起面朝大海,春暖花开!
专栏:C语言初阶日常杂记

static

static 一般用于修饰局部变量,全局变量,函数;

(1)static修饰局部变量:

#include<stdio.h>
void test()
{
	int a = 1;
	a++;
	printf("%d   ", a);
}
int main(void)
{
	int i = 0;
	while (i <= 10)
	{
		test();
		i++;
	}
	return 0;
}

此时结果为2 2 2 2 2 2 2 2 2 2   

将int a=1;改为static int a=1; 后: 

结果为2 3 4 5 6 7 8 9 10

是因为改为static int a=1;后,出了作用域,不会销毁a的值,想要理解其本质,首先先看一下这个图:

 static修饰局部变量时,会影响局部变量的生命周期,本质上改变了局部变量的存储位置,生命周期变长,为整个周期。静态局部变量存储于进程中的全局数据区。

(2).static修饰全局变量

首先我们要知道全局变量的属性:全局变量具有外部链接属性。而static修饰全局变量时,这个全局变量的外部链接属性变为内部链接属性,是其他源文件(.c)文件就可以再使用这个全局变量了。则使用时我们会感觉到该全局变量作用域变小。 

 

 

(3).static修饰函数

此类情况类似于static修饰全局变量。函数同样具有外部属性。而static修饰函数时,这个函数的外部链接属性变为内部链接属性,是其他源文件(.c)文件就可以再使用这个函数了。则使用时我们会感觉到该函数作用域变小。

总结:

static修饰变量

   a. 函数中局部变量

      声明周期延长:该变量不随函数结束而结束

      初始化:只在第一次调用该函数时进行初始化

      记忆性:后序调用时,该变量使用前一次函数调用完成之后保存的值

      存储位置:不会存储在栈上,放在数据段

   b. 全局变量

     改变该变量的链接属性,让该变量具有文件作用域,即只能在当前文件中使用

   c. 修饰变量时,没有被初始化时会被自动初始化为0

  2. static修饰函数

   改变该函数的链接属性,让该函数具有文件作用域,即只能在当前文件中使用

 

  最后如果觉得我写的还不错,请不要忘记点赞,收藏,加关注哦(。・ω・。)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_68865259/article/details/124186488

智能推荐

D3D网格(二)-程序员宅基地

文章浏览阅读1.7k次。从网格XFile文件中导入网格数据,并渲染出来;实际中一般自定义自己的二进制格式文件,实现导出模块,和加载模板,包括了模型和动画。计算网格中的顶点法向量。ID3DXPMesh渐进式网格的创建和使用。用网格顶点创建网格包围体,AABB或球体;实际中很多是在3ds max中创建好包围盒导出,并跟随物体网格一起移动。1.从XFile文件中导入ID3DXMesh网格函数为D3D

OpenGL(五)立体图形_opengl立体图形-程序员宅基地

文章浏览阅读3.9k次。1.方法:建立三维坐标系,然后按照每个立方体的面着色,再绘制这个面上面的点,面的绘制要遵循逆时针的原则。2.OPenGL.proQT += core gui openglgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = OPenGL12TEMPLATE = appSOURCES += main.cpp\ o..._opengl立体图形

java基础知识汇总-程序员宅基地

文章浏览阅读8.4k次,点赞47次,收藏239次。数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。1.2.1第一种数据类型[] 数组名示例:int[] arr;char[] arr;1.2.2第二种数据类型 数组名[]示例:int arr[];char arr[];_java基础

《奇迹MU游戏模拟器——muserver源码分享及下载》_奇迹源码-程序员宅基地

文章浏览阅读1.2k次。同时,也希望大家在研究学习的过程中能够注重知识的传承与创新,为游戏开发领域做出更多贡献。通过以上的源代码示例,我们可以初步了解到奇迹MU游戏模拟器的实现原理和关键功能。这份源码是使用VC++编写的,对于对游戏服务器感兴趣的朋友来说,是一份非常有价值的研究资料。通过该源码,我们可以深入了解奇迹MU游戏的服务端实现原理,从而更好地理解游戏的各种功能和机制。通过分析这个函数,我们可以了解到游戏服务器是如何解析和处理客户端发送的各种请求和消息的。游戏逻辑是奇迹MU游戏模拟器中实现游戏核心功能的部分。_奇迹源码

C语言操作符优先级_c操作符优先级顺序表-程序员宅基地

文章浏览阅读661次,点赞11次,收藏6次。C语言操作符优先级_c操作符优先级顺序表

以鼠标为中心缩放图片_js 图片缩放根据鼠标的位置来展现图片-程序员宅基地

文章浏览阅读514次,点赞15次,收藏8次。初始鼠标位置距离图片左侧的left、top和宽高的比例,与图片放大后的比例相同计算方式,主要是知道放大后鼠标的位置和放大前鼠标的位置,相减得到偏移的距离,使用transform:translate移动就行。在这个基础上不管是缩小还是放大,都需要把上一次translate对应坐标的值 - 这次得到的值_js 图片缩放根据鼠标的位置来展现图片

随便推点

如何找微博大v做推广 CloudKOL为您揭露微博大v推广流程-程序员宅基地

文章浏览阅读387次,点赞4次,收藏7次。微博大V推广是品牌宣传的重要方式之一,但要找到合适的大V资源并进行推广,需要一定的技巧和方法。CloudKOL作为专业的大V推广平台,为您提供便捷、高效的推广服务,助您实现品牌推广的成功。垂询邮箱:[email protected] 网址:https://www.cloudkol.com。

Effie,甘心做你背后的女人-程序员宅基地

文章浏览阅读84次。脱口秀不是单纯的表演,这个看似轻松搞笑的职业,往往让人误以为脱口秀演员本身的工作也轻松无比,仿佛那是幽默是天生的一样。台上一分钟,台下十年功,表演功夫当然重要,可是写稿功力才是内力,没有这个内力的支持,表演的再优秀,也并不能称为一名合格的脱口秀演员。多少个日夜的抓耳挠腮才能换来台上几分钟的搞笑输出,你要绞尽脑汁地思考应该说什么内容,怎么说,用什么节奏,什么音调,什么表情才能让观众大笑。你不能写的太长,太长容易让观众走神,你也不能写的太短,太短有没有料;你好不容易写完了,觉得都要把自己笑死了,

《游戏设计模式》学习笔记(二)命令模式 Command Pattern-程序员宅基地

文章浏览阅读1.9k次。采用命令模式后,我们将jump,fire这些方法做成一个抽象类command的子类,这样每个命令就有了面向对象的形式的封装(将命令变为数据对象,让这个对象和其他对象一样可以被存储和传递)2.对于不同的游戏角色,我们因为会往里边传入不同actor的引用,最后调用的是actor中内置的方法(如jump方法),这就实现了不同的角色拥有不同的按键行为。1.对于不同的按键,由于其类型都是command*,我们只需要让这个指针指向不同的子类命令对象,就可以实现按键配置功能了。这个时候我们就需要考虑使用命令模式了。_《游戏设计模式》

python--关于pip install 安装openpyxl出错_pip.openxlx添加不成功-程序员宅基地

文章浏览阅读1.4w次,点赞15次,收藏27次。安装openpyxl出错:pip install 安装openpyxl出错,在查询了很多博主的解决方案以后,终于安装成功!失败的原因可能会有:pip版本陈旧、超时等等。在此将各路大神解决方法总结下:方法一:加入-userpip install -user openpyxl方法二:先更新pip,在安装python -m pip install --upgrade pippip install openpyxl方法三:做超时处理pip --default-timeout=100 instal_pip.openxlx添加不成功

AI 可把关啤酒质量,为酒厂月省 1 万美元【智能行业快讯 2019.7.31】-程序员宅基地

文章浏览阅读443次。By 超神经AI 无处不在的时代,每天都有新的技术与研究成果出现。无论学术界还是商界,技术还是产品,AI 的新发现都源源不断,在带给我们全新视角的同时,也引起我们更深的思..._国外智能酒厂成功案例

TIDB-OLTP和OLAP的区别_tidb oltp-程序员宅基地

文章浏览阅读889次。OLTP:在线事务处理强调支持短时间内大量并发的事务操作(增删改查)能力,每个操作涉及的数据量都很小(比如几十到几百字节);强调事务的一致性(比如银行转账);比如“双十一”期间,可能有几十万用户在同一秒内下订单,后台数据库要能够并发的,实时的速度处理这些订单的请求。OLAP:联机分析处理偏向于复杂的只读查询,读取海量数据进行分析计算,查询时间往往很长。比如“双十一”过后,淘宝公司人员需要根据历史订单,分析计算市场的的消费规律等。..._tidb oltp