C++编程:volatile、static、const与extern深度解析

需积分: 0 0 下载量 111 浏览量 更新于2024-08-03 收藏 1.56MB PDF 举报
"C++学习笔记,自写自用" 这篇学习笔记主要涵盖了C++编程语言中的一些关键概念,包括volatile、static、const和extern这四个关键字的使用和含义。 1. Volatile: `volatile` 关键字用于标记一个变量,表示其值可能会在编译器未察觉的情况下发生变化,例如在多线程环境中或被硬件中断更新的变量。使用`volatile`后,编译器不会对这类变量进行优化,每次访问都会从内存中读取最新值,确保了程序的正确性。 2. Static: - 局部变量:`static` 修饰的局部变量在程序运行期间只被初始化一次,并且在整个程序运行期间都保持其值,即使函数退出也不会消失。下次再次调用同一函数时,会使用上次的值,但只能在该函数内部访问。 - 全局变量:当`static` 用于全局变量时,限制其作用域仅限于当前源文件,其他源文件无法直接访问,除非使用`extern`声明。 - 函数:`static` 修饰的函数成为静态成员函数,它不与类的任何特定实例关联,而是属于类本身。这意味着静态成员函数不能访问类的非静态成员变量,除非通过对象实例来访问。 3. Const(常量限定符): `const` 用于声明常量,表明变量一旦赋值后就不能修改。 - 常量和数组:`const` 可以放在类型前面或后面声明常量,其区别在于它修饰的是变量还是指针所指向的值。 - const 指针:`const` 放在星号*的左侧,意味着指针所指向的数据不可修改;放在右侧,表示指针变量本身是常量,不能改变其指向。 - 在函数中使用: - 作为参数:传递给函数的`const` 参数可以保护原始对象不被函数内部修改。 - 作为返回值:返回`const` 对象或指针,接收者不能修改返回的值。 - 类中的`const`: - `const` 数据成员必须在类的构造函数初始化列表中初始化。 - 常量对象只能调用常量成员函数,不能调用非`const` 成员函数。 4. Extern: `extern` 关键字用于指示变量或函数是在其他地方定义的,并在此处声明以便引用。声明的位置影响其作用域,如在`main` 函数中声明`extern` 变量,只能在`main` 函数内部使用。 这些关键字在C++编程中扮演着重要的角色,理解它们的用法有助于编写出更加高效、安全的代码。学习者应通过实践和深入研究来掌握这些概念,以提升C++编程技能。