C++编程:volatile、static、const与extern深度解析
需积分: 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++编程技能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2011-03-12 上传
2023-11-13 上传
2011-10-07 上传
2023-11-13 上传
2021-05-14 上传
2021-06-29 上传
liuere
- 粉丝: 12
- 资源: 3
最新资源
- wsn-(2).zip_matlab例程_matlab_
- RedisView:RedisView通过自定义的RESP协议解析,自定义的树模型和线程池,实现了开源,跨平台和高性能的Redis接口工具。 RedisView业余爱好通过自写RESP协议解析,自写树模型,线程池实现开源,跨平台,高级Redis界面图形化工具
- PyPI 官网下载 | tencentcloud-sdk-python-cfs-3.0.447.tar.gz
- TheSquirrelCafe:物联网松鼠喂食器
- ZDWW-OA:zdww-OA
- BMI计算器:BMI计算器
- powertabeditor:跨平台的吉他谱编辑器
- CTProjSim.zip_matlab例程_matlab_
- 参考资料-WI-NK0102档案分类及保管期限表.zip
- refactoring
- Tradedoubler for Publishers-crx插件
- KMV的MATLAB的代码-CarND-Behavioral-Cloning:CarND行为克隆
- BtShell-开源
- SigDigger:基于Qt的数字信号分析仪,使用Suscan内核和Sigutils DSP库
- x86.zip
- feedback:Laravel反馈请求包