首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >“静态常量”与“常量”的C ++语义?

“静态常量”与“常量”的C ++语义?
EN

Stack Overflow用户
提问于 2018-03-20 00:33:22
回答 1查看 0关注 0票数 0

特别是在C ++中,例如:

static const int x = 0 ;

const int x = 0 ;

两者static作为键和存储类说明(即内部和功能外)。

EN

回答 1

Stack Overflow用户

发布于 2018-03-20 10:18:15

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

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

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

请记住,在C ++中,const意味着只读,而不是常量。如果你有一个指针,const那么当你没有看时,程序的其他部分可能会改变这个值。如果用变量定义变量const,那么在初始化后没有人能够改变它,但初始化仍然可以是任意复杂的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档