2-2 C++变量
目录
2.2.1 变量定义:列表初始化(list initialization)
-
定义一个整型
i
并初始化为0 -
#include<iostream> using namespace std; int main(){ //下面四种初始化方式都可以 int i = 0; int i = {0}; //c++新特性 int i{0}; int i(0); return 0; }
-
注: 含有
{}
的的定义方式不支持类型转换(如把float的值用此方式初始化给int时会警告或报错)
2.2.2 变量的定义与声明
C++分离式编译#
- c++支持分离式编译(separate complication):允许把程序分割成多个文件在分别编译
- 分离式编译要保障变量间的互通
定义与声明#
-
声明(declaration):
extern int i;
- 表明程序中有int i 这个变量,编译器会在所有编译文件中寻找该变量
- 需要指明变量的类型(type)和名称(name)
-
定义(definition):
int i
- 编译器直接创建变量 int i ,为它分配存储空间
- 需要指明变量的类型(type)和名称(name),可以指定初始值
-
概念关系图
-
注意点
- 变量只能被定义一次,但可以被声明多次
- 声明是赋予初始值就等价于定义,
extern
关键字被覆盖extern double pi = 3.1416; //definition
2.2.3 C++变量命名
2.2.4 变量名的作用域(scope of a name)
全局作用域与块作用域#
- 全局作用域(global scope):全局有效
- 块作用域(block scope):块内有效【被花括号包围的部分被称为一个块】
嵌套关系#
规则#
- 全局变量与块变量同名时,块变量会覆盖全局变量
::variables_name
:在块变量把全局变量覆盖时坚持调用全局变量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 聊聊 ruoyi-vue ,ruoyi-vue-plus ,ruoyi-vue-pro 谁才是真正的
· C#开发的Panel滚动分页控件 - 开源研究系列文章
· 如何反向绘制出 .NET程序 异步方法调用栈
· ShadowSql之开源不易
· Python 3.14 新特性盘点,更新了些什么?