广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言中static的使用介绍
  • 137
分享到

C语言中static的使用介绍

2024-04-02 19:04:59 137人浏览 八月长安
摘要

目录1.static 可以修饰局部变量2. static 可以修饰全局变量3.static 可以修饰函数总结1.static 可以修饰局部变量 首先让我看看这段代码 #inclu

1.static 可以修饰局部变量

首先让我看看这段代码


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

你认为输出的结果是什么呢?

那为什么结果是2222222222呢

因为局部变量 a 进入这个范围创建  出了这个范围销毁   所以结果都是2

当我们加上static 的结果又会是什么

那为什么加上 static 结果就不一样了

我们研究一下static的使用原理

我们的内存分为三大类

我们的局部变量放在栈区  

而static把a放在了静态区   而在静态区的变量 出了他的范围是不销毁的

我们对比一下 可能更加直观

 所以 static 修饰局部变量的时候,其实改变的是局部变量得存储位置

静态得局部变量是放在静态区,放在静态区的变量出了作用域是不会销毁的,相当于生命周期延长了。

 补充   变量的作用域是不变的,只是生命周期延长了

2. static 可以修饰全局变量

我们再创建一个源文件 

   全局变量的作用域是整个工程

如果我们想引用另一个源文件的函数     这里我们不得不说 extern 这个关键字

如图

  static 可以修饰全局变量  如果我们再全局变量前 加上static会是什么结果呢

此时就会报错  

一个全局变量具有外部链接属性的 (就是可以被其他源文件引用)但是被static 修饰后外部链接属性就变成了内部链接属性 只能在自己所在的源文件内部使用不能在其他文件内部使用

所以再次调试的时候就会报错

那 static 修饰的全局变量的本质是  外部链接属性发生改变   而不是他的作用域变小

static 修饰全局变量的意义是  如果你定义了一个全局变量  别人用 extern 就可以随便使用  

如果你不想让别人看  就可以用static . 

3.static 可以修饰函数

我们用另一个源文件创建一个函数  如图

用 关键字extern 声明后  调试结果

这里我们在函数前加上static 又会是什么结果呢 

  其实一个函数本身具有外部链接属性  被static修饰后 外部链接属性变成了内部链接属性  只能在源2.c 内部使用 其他源文件无法使用    使用上感觉作用域变小

我们可以发现 static 修饰全局变量和修饰函数用法一样   

总结

当我们使用一个局部变量  出了他的范围 不希望他被销毁下次进来之后还在 那我们就可以拿static 修饰 

当我们希望一个全部变量 在他自己源文件使用 任意其他地方不想让别人看到 也可以用static修饰

当我们写的函数只是自己用一下 不希望别人引用 则也可以用static修

到此这篇关于C语言中static的使用介绍的文章就介绍到这了,更多相关C语言static内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言中static的使用介绍

本文链接: https://www.lsjlt.com/news/160489.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言中static的使用介绍
    目录1.static 可以修饰局部变量2. static 可以修饰全局变量3.static 可以修饰函数总结1.static 可以修饰局部变量 首先让我看看这段代码 #inclu...
    99+
    2022-11-12
  • C语言中数组的介绍及使用
    这篇文章主要讲解了“C语言中数组的介绍及使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中数组的介绍及使用”吧!目录数组一维数组初始化使用总结:内存存储二维数组创建初始化数组越界问题...
    99+
    2023-06-20
  • C语言中.与->的用法介绍
    目录(一)基础(二)例子(三)总结(一)基础 结构体用点,结构体指针用箭头。 a->b 的含义是 (*a).b 。  现代的标...
    99+
    2023-05-20
    C语言中.与->的区别 C语言->用法
  • C语言中如何使用static
    这篇文章主要介绍C语言中如何使用static,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.static 可以修饰局部变量首先让我看看这段代码#include<stdio.h>void tes...
    99+
    2023-06-22
  • C++中常用修饰符static的介绍
    这篇文章主要介绍“C++中常用修饰符static的介绍”,在日常操作中,相信很多人在C++中常用修饰符static的介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++中常用修饰符static的介绍”的疑...
    99+
    2023-06-17
  • C语言简明介绍指针的使用
    目录1. 指针类型2. 野指针3. 指针的运算3.1 指针+-整数3.2指针-指针3.3 指针的关系运算4. 指针数组1. 指针类型 指针以字节为单位; 指针类型决定了解引用时能访问...
    99+
    2022-11-13
  • C语言make和Makefile介绍及使用
    1:make和Makefile的介绍: 概念 在软件的工程中的源文件是不计其数的,其按照类型,功能,模块分别放在若干个目录中,哪些文件需要编译,那些文件需要后编译,那些文件需要重新编...
    99+
    2022-11-12
  • C语言中函数的介绍及用法
    本篇内容介绍了“C语言中函数的介绍及用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录函数定义库函数定义介绍Example 1 strc...
    99+
    2023-06-20
  • C语言的预处理介绍
    目录前言一、预定义符号二、#define1.宏2.宏与函数3.带副作用的宏参数4.宏和函数的不同5.#undef三、条件编译四、文件包含总结前言 编译一个C语言程序涉及很多步骤。其中...
    99+
    2022-11-12
  • C++编程语言中stringstream类介绍
    stringstream是C++标准库中的一个类,用于处理字符串的输入输出。它是基于内存缓冲区的输入输出流,可以将字符串转换为各种类...
    99+
    2023-09-09
    C++
  • C语言中操作符的介绍及用法
    这篇文章主要讲解了“C语言中操作符的介绍及用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中操作符的介绍及用法”吧!目录操作符分类算术操作符移位操作符整数存储规则左右移位规则赋值操作...
    99+
    2023-06-20
  • C#中const,readonly和static关键字的用法介绍
    如果有一个值不太会变化,我们经常使用const和readonly,这2者有何不同呢?有时候,我们也会在readonly之前加上关键字static,这又意味着什么呢? const co...
    99+
    2022-11-13
  • C 语言中 static 的作用是什么
    这篇文章给大家介绍C 语言中 static 的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。static 用来说明静态变量。如果是在函数外面定义的,那么其效果和全局变量类似,但是,static定义的变量只能在...
    99+
    2023-06-03
  • C语言中static的用法有哪些
    在C语言中,static关键字有以下几种用法:1. 在全局变量中使用static:当static关键字用于全局变量时,它的作用是限制...
    99+
    2023-08-08
    C语言 static
  • C语言switch语句和if用法介绍
    目录switch语句switch和if的区别1.switch语句结构示意图2.if语句结构示意图switch的高级(灵活)运用switch的嵌套实现循环及循环的两个关键字什么是循环结...
    99+
    2022-11-12
  • C语言指针的详细介绍
    这篇文章主要介绍“C语言指针的详细介绍”,在日常操作中,相信很多人在C语言指针的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言指针的详细介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!目录...
    99+
    2023-06-20
  • 介绍C语言中tolower函数的实例
    C语言tolower函数用于把大写字母转换为小写字母。 在本文中,我们先来介绍tolower函数的使用方法,然后编写一个自定义的_tolower函数,实现与tolower函数相同的功...
    99+
    2022-11-12
  • C语言各种符号的使用介绍上篇
    目录1、注释符号1.1 注释的基本注意事项1.2 如何写出好的注释2、接续符和转移符2.1 续行功能2.2 转义字符3、单引号和双引号3.1 基本概念3.2 特殊情况4、逻辑操作符4...
    99+
    2022-11-13
    C语言符号 C语言符号的使用
  • C语言各种符号的使用介绍下篇
    目录1、按位运算符1.1 按位或( | )和按位与( & )1.2 按位异或( ^ )1.3 一个关于整型提升的问题2、移位操作符2.1 左移<< 右移>&...
    99+
    2022-11-13
    C语言符号 C语言符号的使用
  • C语言中static的使用方法实例详解
    目录前言一、static修饰变量1.修饰局部变量2.修饰全局变量二、static修饰函数补充:static的好处是什么?总结前言 static关键字不仅可以用来修饰变量,还可以用来修...
    99+
    2022-11-13
    c语言static的用法 static作用 c语言 c语言static关键字的用法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作