C语言中的static的用法(超级详细)

这篇具有很好参考价值的文章主要介绍了C语言中的static的用法(超级详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🌹作者:云小逸
📝个人主页:[云小逸的主页]
📝码云:云小逸 (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在c语言中的用法,小知识点,c语言

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

static在c语言中的用法,小知识点,c语言

static在c语言中的用法,小知识点,c语言

(2).static修饰全局变量

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

 static在c语言中的用法,小知识点,c语言

 static在c语言中的用法,小知识点,c语言

(3).static修饰函数

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

static在c语言中的用法,小知识点,c语言

总结:

static修饰变量

   a. 函数中局部变量

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

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

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

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

   b. 全局变量

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

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

  2. static修饰函数

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

 

  最后如果觉得我写的还不错,请不要忘记点赞,收藏,加关注哦(。・ω・。)文章来源地址https://www.toymoban.com/news/detail-792734.html

到了这里,关于C语言中的static的用法(超级详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络开发过程详细知识点

     网络生命周期 至少包括系统构思与计划、分析和设计、运行和维护的过程。  常见的迭代周期分为四阶段周期、五阶段周期、六阶段周期。   网络开发过程根据五阶段迭代周期模型可被分为 五个阶段:    需求分析、现有网络分析、确定网络逻辑结构、确定网络物理结构

    2024年02月07日
    浏览(29)
  • HCIP的基础知识点(详细)

    OSI七层参考模型 OSI/RM ---- 开放式系统互联参考模型--- 1979 --- ISO --- 国际标准化组织核心思想 --- 分层 应用层 --- 提供各种应用程序,抽象语言转换成编码,人机交互的接口 表示层 --- 编码转换成二进制 会话层 --- 维持网络应用和网络服务器之间会话连接 传输层 --- 实现端到端

    2023年04月20日
    浏览(48)
  • Python知识点大全(非常详细)

    1、Python的两种编程⽅式:交互式(随输随运⾏)和⽂件式(主要⽅式;批量运⾏出结果) 2、⼀切皆对象,每个对象由标识(id())、类型(type())和值(print())标识。 3、Python采⽤ 基于值的内存管理 ,不同变量赋值为同⼀个值,ID⼀样,但是只适⽤范围在-5⾄256的整数和短字

    2024年02月09日
    浏览(37)
  • C语言知识点汇总

    C语言知识点保姆级总结,这不得进你的收藏夹吃灰?! 拖了很久的C语言所学知识的简单小结,内容有点多,第一次总结也可能有错误或者不全面,欢迎随时补充说明! ​ 用不同数据类型所定义的变量所占空间大小不一样,定义的变量不是保存于数据类型中,而是因为只有

    2024年01月23日
    浏览(35)
  • [知识点整理]中科院/国科大 自然语言处理nlp 期末考试知识点整理

    本文为2022秋网安学院的自然语言处理课程期末复习知识点整理,水平有限,整理的答案可能有错误或遗漏,欢迎大家指正。 文章的第二部分内容参考了学校学姐的文章,文章写的很好,大家可以关注她: (133条消息) 【一起入门NLP】中科院自然语言处理期末考试*总复习*:考

    2024年02月09日
    浏览(38)
  • 计算机语言知识点梳理

    python是一门强类型、动态型、解释型语言语言 JavaScript是一门弱类型、动态性、解释型语言 typescript是一门强类型、静态型、编译型语言 Java是一门强类型、静态型、编译型语言 变量大小写区分 html css sql java javascript python typescript c 弱类型语言和强类型语言 强类型语言也称为强

    2024年02月09日
    浏览(34)
  • 8086 汇编语言知识点梳理

    机器语言是机器指令的集合 机器指令是一台机器可以正确执行的命令 机器指令由一串二进制数表示 汇编语言的主体是汇编指令 汇编指令是机器指令便于记忆的书写格式 汇编指令是机器指令的 助记符 汇编指令:机器码的助记符,有对应的机器码 伪指令::没有对应的机器

    2024年02月08日
    浏览(44)
  • 监控技术栈中的知识点

    一、日志数据和指标数据怎么区别?   日志数据和指标数据是两种常用的监控数据。它们的区别主要体现在以下几个方面: 数据格式 :日志数据通常是文本格式的,而指标数据通常是数字格式的。 数据内容 :日志数据通常记录了系统或应用程序的运行状态,而指标数据通

    2024年02月07日
    浏览(36)
  • 【C语言】指针知识点笔记(2)

    目录 一、野指针 二、assert断言 三、指针的使用和传址调用 四、数组名的理解 五、使用指针访问数组

    2024年01月18日
    浏览(34)
  • QT C++ 中的重要知识点

    以下是一些 QT C++ 中的重要知识点: 1. 信号和槽机制 :QT C++ 中的信号和槽机制是一种事件处理机制,用于在对象之间传递消息。信号是一种特殊的函数,当特定事件发生时,它们被发射。槽是一种普通的函数,用于响应信号。通过连接信号和槽,可以实现对象之间的通信。

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包