IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言中的static(初识)(三种基本用法) -> 正文阅读

[C++知识库]C语言中的static(初识)(三种基本用法)

如果有什么建议,可以跟我沟通,我进行更改

static? ? 意为? ??静态的

?接下来我们将进行三种用法的理解:

  1. static 可以用来修饰局部变量(局部变量在其的作用域中起作用,进入作用域创建,出 作用域进行销毁? ?)

    1. 普通的局部变量是放在栈区(不用深入理解,它就是内存中的一部分的范围),这种的局部变量进入作用域创建,出了作用域释放(其实就是销毁),但是被static修饰后,这种的变量就放在静态区(它也是内存的一部分,但不是栈区的)静态区中的变量有全局变量等一些变量这些变量有一个特点:它们的生命周期是整个程序完成的时候。(简单来说,就是直到程序完成的时候才被销毁)。
    2. 被static修饰的只有只是生命周期变长了,作用域没有变
    3. #define _CRT_SECURE_NO_WARNINGS 1
      #include <stdio.h>
      void test()
      {
      	int a = 0;
      	a++;
      	printf("%d\n", a);
      
      }
      
      int main()
      {
      	int i = 0;
      	while (i < 10)
      	{
      		test();
      		i++;
      
      	}
      	return 0;
      

      这是一个程序,我们来看他的结果

      ?很显然,它的a是每次进入作用域都创建,但最后出了作用域才销毁,才可能是10个1的结果。那么我们把它加上static之后我们猜测是‘12345678910’这样的结果

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

      他的结果是这样的

    4. 所以static的作用就如我们前面所说的:它保证了变量a之前的值不被销毁,仍然使用原来的值,不用重新创建新的值
    5. 本质上:static修饰的局部变量使局部变量的存储位置发生了改变了(使其从栈区到静态区)
  2. ?static可以修饰全局变量

    1. 全局变量本身是具有外部链接属性的,在A文件中定义的变量,B文件中通过extern声明来使用,(其中A,B文件都是源文件,都是同一个项目)
    2. 但是如果被static修饰以后,这个外部链接属性就变成了内部的链接属性,使其的作用域变小。
  3. static也可以修饰 函数

    它的作用和修饰全局变量的原理相同,在这里我就不介绍了
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 20:56:54  更:2022-10-22 21:01:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 2:49:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码