const 修饰符表示常量,值不可修改;static 修饰符指示变量的生存期和作用域。const 修饰的数据成员在初始化后不可修改,static 修饰的变量在程序启动时初始化,在程序结束时销毁,即使没有活动对象也会存在,并且可以跨函数访问。const 修饰局部变量必须声明时初始化,static 修饰的局部变量可以稍后初始化。const 修饰类成员变量必须在构造函数或初始化列表中初始化,static 修饰的类成员变量可以在类外部初始化。
c 中 const 和 static 的区别
简单明了的区别:
- const 修饰符表示一个常量,它的值在程序运行期间不能被修改。
- static 修饰符指示一个变量的生存期和作用域。
详细解释:
const 修饰符:
- const 用于声明常量,即不能更改值的变量。
- const 修饰的数据成员只能在类构造函数或初始化列表中初始化。
- const 变量在程序运行期间不能被修改,否则会产生编译错误。
- const 可以应用于对象、指针或引用。
static 修饰符:
- static 用于声明静态变量,即在整个程序中都存在的变量。
- 静态变量在程序启动时进行初始化,并且在程序结束时销毁。
- 静态变量即使在没有活动对象时也会存在,并且可以跨函数访问。
- static 可以应用于全局变量、类成员变量和局部变量。
其他区别:
- const 修饰的数据成员是只读的,而 static 修饰的数据成员可以读写。
- const 修饰的局部变量必须在声明时初始化,而 static 修饰的局部变量可以稍后初始化。
- const 修饰的类成员变量必须在构造函数或初始化列表中初始化,而 static 修饰的类成员变量可以在类外部初始化。
示例:
<code class="cpp">// const 常量
const int MY_CONSTANT = 10;
// static 全局变量
static int global_count;
// static 类成员变量
class MyClass {
public:
static int static_member;
};</code>
登录后复制
在上述示例中:
- MY_CONSTANT 是一个常量,一旦初始化就无法更改。
- global_count 是一个静态全局变量,在整个程序中都存在。
- MyClass::static_member 是一个静态类成员变量,可以在类外部访问。
以上是c++中const和static的区别的详细内容。更多信息请关注PHP中文网其他相关文章!