C++基础知识详解:const与static的应用

需积分: 0 2 下载量 49 浏览量 更新于2024-06-30 收藏 2.19MB DOCX 举报
"C++基础知识总结" C++是一种强大的、面向对象的编程语言,它的语法丰富且灵活。在C++中,`const`关键字和`static`关键字是非常重要的概念,它们分别用于声明常量和管理变量的存储与生命周期。 **1. `const`关键字** `const`关键字在C++中有着多方面的用途,主要用来声明常量,确保变量的值不会被改变。以下是一些关键应用: - **常量变量**:当`const`修饰一个变量时,该变量一旦被初始化后就不能再被赋值。例如: ```cpp const int a = 5; // 常量整型变量,不能再次赋值 ``` - **指向常量的指针**:`const`可以用来修饰指针,表明指针所指向的内容是不可修改的。例如: ```cpp const int b = 10; const int *ptr = &b; // 指向常量的指针,不能通过指针修改b的值 ``` - **指针常量**:如果指针本身是`const`,则指针的值(即它所指向的地址)不能改变。例如: ```cpp int c = 20; int *const ptr2 = &c; // 指针常量,ptr2的值不再改变,但可以修改c的值 ``` - **常量引用**:常量引用常用于函数参数,以避免值的拷贝并禁止函数内部修改实参的值。例如: ```cpp void func(const int &x) { /* x是常量引用,不能被修改 */ } ``` - **常量成员函数**:`const`还可以修饰成员函数,表示该函数不会修改类的非静态数据成员。这有助于在编译时进行类型检查。例如: ```cpp class MyClass { public: void doSomething() const; // 常量成员函数,不会修改对象状态 }; ``` **2. `static`关键字** `static`关键字在C++中用于改变变量的存储位置和生命周期,主要应用于以下几个场景: - **静态成员变量**:对于类的静态成员变量,所有类对象共享同一份存储空间,不随对象实例化而创建。例如: ```cpp class MyClass { public: static int count; // 静态成员,所有MyClass对象共享count }; int MyClass::count = 0; // 初始化静态成员 ``` - **静态局部变量**:在函数内部声明的静态变量,只会在首次执行函数时初始化,并在后续调用中保持其值。例如: ```cpp void myFunc() { static int i = 0; // 静态局部变量,仅初始化一次 ++i; std::cout << i << std::endl; } ``` - **静态全局变量**:全局静态变量仅在当前源文件内可见,提供了一种限制全局变量的作用域的方法。例如: ```cpp static int globalVar; // 只在当前文件可见的全局变量 ``` `const`和`static`是C++中非常基础且重要的两个关键字,它们帮助程序员更好地控制代码的行为,提高程序的稳定性和可维护性。理解并熟练运用这两个关键字是深入学习C++的关键步骤。