c语言static初始化,c语言static默认值

dfnjsfkhak 2 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言static初始化问题,于是小编就整理了4个相关介绍c语言static初始化的解答,让我们一起看看吧。

  1. C语言静态变量初始化在什么阶段?
  2. static变量什么时候初始化?
  3. static在c语言中的作用?
  4. static在c语言中的作用?

C语言静态变量初始化在什么阶段

C语言静态变量的初始化在程序运行之前的编译阶段进行,即在程序开始执行之前就完成了静态变量的初始化操作。静态变量在程序整个运行过程中只会被初始化一次,而且它的初始化值是在编译期间确定的。

static变量什么时候初始化?

只会执行一次

c语言static初始化,c语言static默认值-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

复现:

可以在Student类的构造函数里面加上 如:

运行会发现它只会打印一次

c语言static初始化,c语言static默认值-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

粗略原理

static 变量是类变量,会在该类第一次使用时进行初始化,并且只会初始化一次,类加载器内部会有锁去控制避免一个类被初始化多次,静态field和静态代码块 都是只会执行一次,在编译器的角度来说,编译器在编译时会按顺序收集静态field和静态代码块 然后放到一个生成的<cinit>特殊方法中,类初始化的时候会调用 <cinit>方法。

应用

c语言static初始化,c语言static默认值-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

static在c语言中的作用?

static在 c语言中的作用:

第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。

第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。

第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态变量区。初始化的时候自动初始化为0。

(1)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组如果不想让这个数组在函数调用结束释放可以使用static修饰

(2)考虑到数据安全性(当程想要使用全局变量的时候应该先考虑使用static)

扩展资料:

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机作业平台的许多计算机平台上进行编译。

static在c语言中的作用?

static在 c语言中的作用:

第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。

第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。

第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态变量区。初始化的时候自动初始化为0。

(1)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用static修饰

(2)考虑到数据安全性(当程想要使用全局变量的时候应该先考虑使用static)

扩展资料:

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

到此,以上就是小编对于c语言static初始化的问题就介绍到这了,希望介绍关于c语言static初始化的4点解答对大家有用

标签: 变量 static 初始化