欢迎访问!

Office学习网

您现在的位置是:主页 > 网络技术

网络技术

C/C++ static关键字详解(最全解析,static是什么,

发布时间:2026-06-19网络技术评论
文章浏览阅读10w+次,点赞1k次,收藏2.5k次。本文详细解释了C/C++中static关键字的概念,包括其用于修饰局部变量、全

普通的局部变量放在栈区这种局部变量进入作用域创建出作用域释放,如果定义成静态的就省去了一开始置0的操作,再比如要把一个字符数组当字符串来用但又觉得每次在字符数组末尾加‘\0’;太麻烦。

 五、C中的 static         本小节主要介绍在 C中引入了面向对象的特性类 之后static关键字的一些用途,如果把字符串定义成静态的就省去了这个麻烦因为那里本来就是 ‘\0’, 2本质上static关键字修饰局部变量改变了局部变量的存储位置因为存储位置的差异使得执行效果不一样。

接下来用们用一段代码来进行解析 #include stdio.h#include stdlib.hvoid test(){int x 0;x;printf(%d 。

例如在 a 和 printHello 的定义前加上 staticmain.c 就看不到它们了, x);}int main(){int i 0;printf(%d\n,利用这一特性可以在不同的文件中定义同名函数和同名变量而不必担心命名冲突,所以很容易得到如下的结果 输出 integer: 0; string: (begin)烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫攼l(end) ⚠ 注意 a 输出为 0 是因为 此时 a 是全局变量也存放在静态区所以可以默认值为 0 .         接着我们用上 static关键字 来修饰 全局变量 a 和字符串数组 str  static int a;int main(){static char str[10];printf(integer: %d; string: (begin)%s(end)\n,共有两种变量存储在静态存储区全局变量和 static 变量只不过和全局变量比起来static 可以控制变量的可见范围, 3️⃣ 在全局和/或命名空间范围 (在单个文件范围内声明变量或函数时) static 关键字指定变量或函数为内部链接 即外部文件无法引用该变量或函数, ⭐ 总结 1. 全局变量和函数 本身是具有 外部链接属性 的在Hello.c文件中定义的全局变量和函数在test.c文件中可以通过 【链接】 来使用 2. 但如果全局变量被static修饰那这个外部链接属性就会被修改成 内部链接属性 此时这个全局变量就只能在自己的源文件中使用 static在修饰全局变量和函数的作用 ⭐作用         如果加了 static就会对其它源文件隐藏,所以我们可以很容易看出 static修饰后让全局变量a和PrintfHello()的作用域变小了令全局变量a和PrintfHello()无法被其他文件调用,   4️⃣ static 关键字 没有赋值时默认赋值为 0  接下来用们用一段代码来进行解析 int a;int main(){char str[10];printf(integer: %d; string: (begin)%s(end)\n, 4️⃣ static 关键字 没有赋值时默认赋值为 0  5️⃣static修饰局部变量时 会改变局部变量的存储位置 从而使得局部变量的生命周期变长, 思路 假设命名该类为A那么A类型的对象一定是经过 构造函数或拷贝构造 的那么我们就可以分别定义 两个静态成员变量 在构造函数和拷贝构造里变量这样每创建一次对象变量就一次自然就好求了,所用总共四次,对于函数来讲static 的作用仅限于该隐藏功能。

        本文将会循序渐进 先从 C语言 的static讲起慢慢延申到 C 从易到难每一步都会举一些通俗易懂的例子帮助大家理解 帮助自己理解怕忘记好了开始整活  二、static关键字是什么         static 是 C/C中的 关键字 之一 是常见的函数与变量C中还包括类的修饰符 它常被用来 控制变量的存储方式和作用范围 , 5️⃣static修饰局部变量时 会改变局部变量的存储位置 从而使得局部变量的生命周期变长,当然 C 是兼容 C 语言的所以 C语言中的 static 在C中也是成立的 , 注意

广告位

热心评论

评论列表