C/C++ 中static 和 const的用法

static

    作用:修饰变量、函数

    变量

     全局变量:修饰的全局变量,指定其内部链接,也就是只能本文件使用。
     局部变量:修饰的局部变量,改变其生命周期,并不会修改器作用域。
     成员变量:只属于类,不属于对象。使用的适合可以通过类名或者对象引用。修饰的成员变量必须在类外单独初始化,如果同时被const 修饰则可以在定义的适合进行初始化。

    函数

      普通函数:修饰的普通函数,指定其内部链接,也就是只能本文可见。
     类成员函数:静态成员函数只属于类,不属于对象。没有this指针,所以它不能访问非静态成员函数 ,和非静态成员变量。 它是用来处理静态成员数据,如果我们非要使用静态成员函数访问非静态成员函数或者非静态成员变量,我们可以间接使用类进行引用。

const

     用法:修饰变量,参数,返回值。 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性。const 允许指定语义约束,告诉编译器哪些变量是不可以改变的。
     修饰变量:C语言中const将一个变量转化为常变量,存储在静态文本段,只有读取权限,C++中同样会将一个变量转化成常量,C++会对其进行优化,将其放入寄存器中,如果想去内存中读取该数据时,我们可以使用volatile关键字进行修饰,保证其可见性。
     修饰指针变量: 如果const位于* 左侧时,不能修改指针所指的对象
                               如果const位于* 右侧时,不能修改指针的指向,所以必须初始化。
     修饰参数:作用是原参数在该函数中不可被改变。
     修饰的返回值:也是用const来修饰返回的指针或引用,保护指针指向的内容或引用的内容不被修改,也常用于运算符重载。归根究底就是使得函数调用表达式不能作为左值。
     修饰成员变量:该变量只能在初始化列表里初始化。
     修饰成员函数:在成员函数后面加上const,const修饰this指针所指的的对象,也就是保证调用该成员函数的对象,在成员函数内部不会改变。(改变权限,权限可缩小,但是不可扩大)

如何修改一个const修饰的变量?

     使用volatile修饰该变量,保证该变量的在内存中的可见性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值