static总结

一、修饰变量

static可以修饰变量,修饰变量又分为:全局变量、局部变量

全局变量

static修饰的全局变量改变了链接属性,使得其具有文件作用域,不能被同一个工程下的其他源文件访问到。

局部变量

static修饰的局部变量改变了变量的生命周期,使其不再是生命周期函数,函数调用结束后保留其值。

存储位置

没有被static修饰的全局变量存储在静态区,没有被static修饰的局部变量存储在上。如果被static修饰后,全局变量和局部变量都存储在静态区,只是作用域不同,全部静态变量作用域具有文件作用域,函数静态变量作用域是函数体内部。而且分两个部分存储:.bss段、.data段,.bss段存储未初始化的部分,.data段存储初始化的部分。

修饰成员变量

1.共享

在C++中,static修饰的也可以修饰成员变量,普通成员变量只能通过对象访问,但静态成员变量是类的性质,为所有的对象共享,不属于某个具体对象

2.类内声明,类外定义

static修饰的变量在类内声明,在类外定义。

3.访问形式

可以通过对象访问,也可以通过类名访问。

4.sizeof

sizeof(类)不计算静态成员变量的大小。

5.static不能出现在构造函数初始化列表中。

二、修饰函数

static可以修饰函数,修饰的函数文件作用域改变,只在当前文件中使用,其他源文件不能看到。static修饰的函数也改变了函数的链接属性。static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。

static修饰成员函数

1.静态成员函数不含this指针,不能访问类中普通成员变量。
2.静态成员函数也是函数,有三种访问权限:private、protected、public。
3.调用规则

  • static修饰的成员函数只能调用其他的static修饰的成员函数,但是不能调用其他的非static修饰的成员函数。
  • 非static修饰的成员函数可调用其他的static修饰的成员函数,也可以调用其他的非static修饰的成员函数。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值