当前位置:首页 > 学习资源 > 讲师博文 > 关键字static的作用是什么?

关键字static的作用是什么? 时间:2024-05-11      来源:华清远见

关键字static在编程中的作用因编程语言的不同而有所差异。以下是它在C语言和C++语言中的主要用途:

在c语言中,static是一种静态型的存储类型,可以用来可以修饰变量和函数

1.修饰变量:

1)被修饰变量的存放位置在全局区(静态区)

如果静态变量有初值则存放在.data区,如果没有初值存放在.bss区

2)被修饰的变量生命周期为整个程序

3)限制作用域:

如果修饰的是局部变量,和普通局部变量的作用域没有区别,但是可以延长其生命周期。

例如:

如果修饰的是全局变量,则会被限制在本文件中使用

4)只初始化一次,在未赋初值时初值为0

例如:

2.修饰函数:

static修饰的函数只能在本文件中使用

在C++中,static关键字有多种用途,它可以用来修饰变量、函数、成员函数和类。其意义取决于它被应用的上下文。以下是static在C++中的主要作用:

1.静态变量(Static Variables):

在函数内部:static变量在函数内部使用时,其生命周期会扩展到程序的整个运行期间,而不是仅仅在函数调用时存在。这意味着每次函数被调用时,static变量不会被重新初始化,而是保持上次函数调用结束时的值。

在类/结构内部:static成员变量属于类本身,而不是类的任何特定实例。因此,所有实例共享同一个static成员变量。

在文件级别:static全局变量或函数仅在其定义的文件内可见,这有助于限制变量的可见性和作用域,实现封装。

2.静态函数(Static Functions):

静态函数只能在定义它们的文件中被访问。这意味着它们提供了文件范围的封装,使得其他文件不能直接访问这些函数。

静态成员函数可以通过类的名称和范围解析运算符(::)来调用,而不需要类的实例。它们只能访问类的静态成员变量和其他静态成员函数。

3.静态类成员(Static Class Members):

静态类成员变量(无论是数据成员还是函数成员)都属于类本身,而不是类的任何特定实例。

静态类成员变量在类的所有实例之间共享,因此它们提供了一种在不使用全局变量的情况下在类的所有实例之间共享数据的方法。

静态类成员函数只能访问静态类成员变量和其他静态成员函数。它们不能访问类的非静态成员。

4.静态类(Static Classes):

在C++中,类本身不能被声明为静态的,但类的成员可以被声明为静态的。因此,这个用法是不正确的,可能是对其他语言中静态类概念的误解。

需要注意的是,static关键字的确切行为可能会因C++的不同版本和不同的编译器实现而略有差异。因此,在使用static时,最好查阅相关的文档和规范以确保代码的正确性和可移植性。

总的来说,static关键字在编程中用于控制变量的生命周期和可见性,限制函数或方法的作用范围,实现类的数据共享和封装等。

上一篇:C++多态

下一篇:几种常用的机器学习调参方法

戳我查看嵌入式每月就业风云榜

点我了解华清远见高校学霸学习秘籍

猜你关心企业是如何评价华清学员的

干货分享
相关新闻
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2024 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部