C++ const和static

C++ const与static

const

  • const 用于定义常量,修饰要保护的东西
  • 可以用于函数重载.
  • 可以节省空间,避免不必要的内存分配.
  • const可以修饰: 变量 函数 引用 函数参数 函数等.
  • const在类中修饰成员变量.成员变量不能修改,且只能通过初始化列表进行赋值. const成员函数不能修改类中成员变量. const成员能够访问const成员变量.而其他成员函数不可以.
  • const常量可能带来常量折叠问题. 编译器主动进行了优化.将const常量从内存中读入,保存在寄存器中.下次访问直接从寄存器中取出.而不是从内存中取出.可能会造成一些问题.可以使用 volatile 进行修饰,保证每次强制从内存中取值.

static

  • 面向过程的static
    • 静态全局变量 默认初始化为0
    • 静态局部变量 只在首次执行到的时候初始化一次.
    • 静态函数
  • 面向对象的static
    • 静态成员变量 需要分配实际的地址.需要在类外初始化
    • 可以节省内存, 静态成员函数和静态成员变量都是整个类共有的.
    • 静态成员函数没有this指针. 静态成员函数只能访问静态成员数据. 普通成员函数都可以.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值