extern,const,static

1.extern可以置于变量或函数前,以表明变量或函数的定义在别的文件中,下面代码用到的这些变量或函数是外来的,不是本文件定义的,提示链接器遇到此变量和函数时在其他模块中解析/绑定此标识符。

2.const修饰的值是常量。这是不精确的,精确来说应该是只读的变量,其值在编译时不能被使用,因为编译器在编译时不知道其存储的内容。
const修饰的变量不能直接修改,但可以通过指针来改变变量里的值,只能在本文件中被读取,作用域是当前文件。
在C++里,const可修饰类,变量,函数。const成员函数,可以使用类中所有的成员,但不能被改变,声明和定义函数时都要加const,一旦将对象定义为常对象之后,
就只能调用类的const的成员。C++对const的处理少了读取内存的过程,优点是提高了程序的执行效率,缺点是不能反映内存的变化,一旦const变量被修改,c++就不能取得最新的值。

3.static
  全局静态变量:作用范围局限于它的源文件,即只有本文件内的代码才可以访问它,变量名在其他文件内不可见
 
  局部静态变量:局限于特定函数,但出作用域并不释放,在函数体内的静态变量的值也能够维持
 
  静态函数:作用范围仅限于它的源文件,即只有本文件内才能够调用,函数名在其他文件不可见
 
  存放位置:程序开始时,存放在全局数据区,结束时释放空间,默认初始化值是0,使用时可改变其值;
  在C++中,当static修饰的成员变量属于类,可以共享(相当于全局变量),不属于具体的某个对象。
  必须在类外初始化,例如 int Student::m_total = 0,其中int为类型,Student是类,m_total是static变量,0为初始化值。 
    访问方式,static成员变量既可以被对象访问,也可以被类来访问或可以被对象指针来访问。
  
  static函数与普通成员函数的根本区别在于:普通函数有this指针,可访问所有成员,static函数没有this指针,只能访问static成员
  static只能在声明函数时候加,不能再定义函数时候加(类中声明,类外初始化)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值