static

面向过程的static
作用1:隐藏

全局静态变量:
    普通的全局变量,在同一个工程下, a.cpp文件定义了一个全局变量 k , 则另一个 b.cpp文件 不可以再定义一个同名的全局变量(重定义),也不能使用它(未定义),除非使用 extern。。
    而如果是 静态全局变量 的话。b.cpp文件 可以定义一个相同名的变量(a.cpp将k的可见范围限定住了),用extern也连接不到(无法解析的外部符号)
    总结:定义为静态全局变量 可以 避免命名冲突,静态变量存在静态存储区,会默认初始化为0
    动态存储区存放以下数据:
    1)函数形式参数;
    2)自动变量(未加static声明的局部变量);
    3) 函数调用实的现场保护和返回地址;
    
作用2:保持变量内容的持久,因为是存放在静态存储区的
作用3:默认初始化

面向对象的static
静态数据成员:
    类的静态数据成员 只分配一次内存,为所有对象共享。 因为静态数据成员定义时要分配内存空间,所以不能再类声明中定义
    类声明只声明一个类的“尺寸和规格”,并不进行实际的内存分配 ,所以在类声明中写成定义是错误的。

静态成员函数:
    因为静态成员函数不与任何对象相关联。所以 不具有this指针, 因此也不能访问类的非静态成员,只能使用静态成员
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值