C++之const和static

const:

用途:用于声明常量。一旦为const对象赋值后,就不能再修改它。

作用域:可以是全局的、类的、文件内静态的或函数内的(但局部常量通常在函数内被初始化为常量表达式)。

储存期:取决于其作用域和定义位置。

static:


用途:在函数内部:用于声明一个只在该函数内部初始化一次的局部变量(即,它只在第一次进入该函数时初始化,并在程序的生命周期内保持其值)。

在文件作用域(全局或命名空间):用于声明一个只在该文件或命名空间中可见的变量或函数

在类内部:用于声明一个类的静态成员变量或静态成员函数。静态成员变量在所有对象之间共享一个存储位置,而静态成员函数则可以直接通过类名调用,无需创建类的对象。

作用域:取决于其定义位置。在文件作用域中,它是文件私有的;在类作用域中,它是类的成员

储存期:静态变量具有静态存储期,这意味着它们在程序的整个生命周期内都存在。

主要区别:

可变性const表示不可变性,即一旦初始化后就不能再修改;而static与可变性无关,它控制变量的存储期和可见性。

存储期:虽然两者都与存储期有关,但static关键字直接指定了静态存储期,而const本身并不指定存储期(除非与static或其他存储类说明符一起使用)。

可见性:static在文件作用域中用于限制变量的可见性;而const本身不控制可见性,它只控制变量的可修改性。

用途:const主要用于创建常量;而static主要用于控制变量的存储期和可见性,以及类成员函数的调用方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值