为了账号安全,请及时绑定邮箱和手机立即绑定

静态const与const的C ++语义

静态const与const的C ++语义

C++
杨__羊羊 2019-12-16 10:23:51
具体来说,在C ++中,例如之间的语义差异是什么:static const int x = 0 ;和const int x = 0 ;同时static用作链接和存储类说明符(即函数内部和外部)。
查看完整描述

2 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

在文件范围内,C ++没有区别。 const将内部链接设置为默认值,并且所有全局变量都具有静态生存期。但是第一个变体在C中的行为相同,因此这可能是使用它的一个很好的理由。

在一个函数中,第二个版本可以从参数中计算出来,在C或C ++中,它不必像某些其他语言所要求的那样是编译时常量。

在类中,与函数基本相同,const可以在ctor-initializer-list中计算实例值。static const在启动初始化期间设置A ,在其余程序中保持不变。(注意:static成员的代码看起来有些不同,因为声明和初始化是分开的。)

请记住,在C ++中,const表示只读,而不是常量。如果您有指向的指针const,则程序的其他部分可能会在您不查找时更改该值。如果使用定义了变量const,则初始化后没有人可以更改它,但是初始化仍然可以是任意复杂的。


查看完整回答
反对 回复 2019-12-16
  • 2 回答
  • 0 关注
  • 451 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信