static的作用

本文深入解析C语言中static关键字的作用,包括静态变量的生命周期、作用域,以及如何影响全局变量和函数的可见性。同时,阐述了在类中static成员变量和函数的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在C语言中,static关键字至少有下列几个作用:

  1. 函数体内的static变量作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值。(

    static修饰局部变量时,使得被修饰的变量成为静态变量,存储在静态区。存储在静态区的数据生命周期与程序相同,在main函数之前初始化,在程序退出时销毁。(无论是局部静态还是全局静态)

    局部静态变量使得该变量在退出函数后,不会被销毁,因此再次调用该函数时,该变量的值与上次退出函数时值相同。值得注意的是,生命周期并不代表其可以一直被访问,因为变量的访问还受到其作用域的限制。)

  2. 在模块内的static全局变量可以被模块内的所有函数访问,但是不能被模块外的函数访问。(全局变量本来就存储在静态区,因此static并不能改变其存储位置。但是,static限制了其链接属性。被static修饰的全局变量只能被该包含该定义的文件访问。)
  3. 在模块内的static的函数只可被这一模块内的函数调用,这个 函数的使用范围被限制在他的模块内。
  4. 在类中的static的成员变量属于整个类,对类的所有对象只有一份复制。
  5. 在类中的static成员函数属于整个类所有, 这个函数不接受this指针,因而只能访问类的static成员变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值