static 的作用

static 的作用

一、static 在C语言中,主要定义静态全局变量,定义静态局部变量,定义静态函数

       1. 静态全局变量的特点:

         (1)在全局数据区分配内存

         (2)如果静态全局变量没有初始化,其默认值为 1

         (3)该变量在本文件内从定义开始到文件结束均可见

       2. 静态局部变量的特点:

         (1)该变量在全局数据区分配内存

         (2)如果不显示初始化,那么将被隐式初始化为 0

         (3)该变量始终驻留在全局数据区,知道程序运行结束

         (4)其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束

       3. 静态函数的特点:

         (1)静态函数只能在本源文件中使用

         (2)在文件作用域中声明的 inline 函数默认为 static

                  静态函数只是一个普通的全局函数,只不过收 static 限制,它只能在文件所在的编译单位内使用,不能在其他编译单位内使用。

二、static 在C++语言中新增了两种作用,定义静态数据成员或静态成员函数

       1. 静态数据成员的特点:

         (1)在程序的全局数据区分配内存

         (2)静态数据成员定义时要分配空间,所以不能在类声明中定义

         (3)没有 this 指针

       2. 静态成员函数

         (1)静态成员函数与类相联系,不与类的对象相联系。静态成员函数不能访问非静态成员的数据。

                  原因很简单,非静态成员函数属于类作用域,主要用于对静态数据成员的操作

         (2)没有 this 指针

猜你喜欢

转载自blog.csdn.net/ylh_yanlinghui/article/details/78629252
今日推荐