竟然有人如此解释关键字中的static

简介: 竟然有人如此解释关键字中的static

目录

👋前言

😍static的作用

🤩修饰局部变量

🥳修饰全局变量

😎修饰函数

🫠总结


👋前言

在C专栏里,会有对C中一些重要的知识详细概括与分析,且还会对一些题目进行展开讲解,请各位看光敬请期待哦!

😍static的作用

static在C语言中是用来修饰变量与函数的。它具体有三个用法,1修饰局部变量,成为静态局部变量。2修饰全局变量,成为静态全局变量。3修饰函数,称为静态函数。

🤩修饰局部变量

static修饰局部变量,是局部变量的储存位置改变了,是它的生命周期变长了,但作用域没改变。对于上面这句话可以通过画图和代码很好的理解清楚,话不多说,直接上图:

通过结果都是1,我们可以发现没有用static局部变量j一出局部范围就销毁了,下一次循环上来还是0,所以局部变量j的生命周期还在test()这个局部范围里,并没有改变。

通过结果发现j在不断增加,我们可以发现是使用static后j的生命周期变长了,出了test()的范围并不会销毁,j的值很好的延续下去了。

看到这里,相比很多看官老爷会对改变变量的储存位置这个说法感到疑惑叭,在这里就画图给大家解释。看完这个图大家就更深层次理解了叭,🤪没使用static时,j是在栈区储存的局部变量,遵循栈区变量的特点,出了作用域就销毁。 🤪而使用static后j就变成了静态变量,就在静态区中,遵循静态区变量的特点,程序结束才销毁。

🥳修饰全局变量

全局变量具有外部链接属性,在其他源文件中依然可以使用。but 用static修饰全局变量的话,就会改变全局变量的链接属性,使外部链接链接属性变成内部链接属性,只能在自己所在的源文件中使用。

未使用static修饰a:

使用static修饰a:发现编辑器直接报错了,a在test.c这个源文件里无法使用。

😎修饰函数

函数有外部属性,在别的原文件里也能使用,但是在被static修饰后只能在自己所在的原文件里使用,外部属性变成内部属性。

未使用static:

使用static:使用后直接报错,无法解析外部符号add这个函数,因为它的外部属性变成了内部属性。


🫠总结

static这个关键字还是有一些作用的,比如你把这份代码想卖给别人,但是又不想别人知道怎么实现的,就可以加上static改变外部链接属性。好啦,就到这里啦,希望各位看官老爷给个一键三连哦 😘

目录
相关文章
|
3天前
|
Java
关键字static与格式访问修饰符详解(代码解释版)
关键字static与格式访问修饰符详解(代码解释版)
|
2月前
|
存储 Java C++
31.C#:关键字static
31.C#:关键字static
15 1
|
2月前
|
C语言
C语言中关键字static的三种用法
C语言中关键字static的三种用法
|
5月前
|
存储 编译器 C++
掌握 C++ 中 static 关键字的多种使用场景
在最开始C中引入了static关键字可以用于修饰变量和函数,后来由于C++引入了class的概念,现在static可以修饰的对象分为以下5种:
64 0
|
6月前
|
C语言
关键字static在C语言中的三种用法
关键字static在C语言中的三种用法
37 0
|
8月前
关键字static
延长局部变量的生命周期,缩小全局变量和函数的作用
26 0
|
8月前
|
Java
final 类,常量,方法的解释
final 类,常量,方法的解释
57 1
|
9月前
|
存储 Java 编译器
【C语言】静态关键字static的用法(详解)
不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。这篇文章主要介绍了C语言中静态关键字static的作用,对大家学习C语言非常有帮助。
102 0
|
9月前
|
Java
深入理解static的作用以及被static修饰的变量、方法、块
static关键字有以下三种使用方法: 1.被static修饰的变量属于静态变量,类变量,可以通过类名,变量名直接引用,不需要进行new一个新类。 2.被static修饰的方法属于静态方法,类方法,可以通过类名,方法名直接引用,而不需要new出来一个对象 3.静态块,用于初始化一个类的时候进行一些操作,静态变量、静态方法和静态代码块都只执行一次,而且只在初始化的时候执行。
204 1
|
12月前
|
存储 C语言
初识C语言——关键字static的作用
初识C语言——关键字static的作用
65 0