2.2变量

本文详细介绍了C++中变量的初始化与赋值的区别,列表初始化和默认初始化的规则。强调了变量声明和定义的关系,指出声明用于名字可见,定义则创建实体,且变量只能定义一次。此外,还探讨了标识符的命名规范和作用域的概念,包括全局和局部作用域,以及如何使用作用域操作符。最后提到了避免在函数内遮蔽全局变量的重要性。
摘要由CSDN通过智能技术生成

初始化

初始化不是赋值,初始化的含义是创建一个变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来替代。

 

列表初始化

 int u=0;

 int u = {0};

 int u{0};

 int u(0);

默认初始化

定义变量时没有指定初值,则变量被默认初始化

定义于函数体内的内置类型未初始化,则其值未定义。

类的对象没有显示初始化,其值由类决定

2.2.2 变量声明和定义的关系

 

c++支持分离式编译(separate compilation)

声明使名字为程序可知

定义负责创建与名字关联的实体

想声明而非定义用关键字extern

 extern int j ;//声明i而非定义I

 int I ; //声明并定义I

包含显示初始化的声明即为定义

 extern double pi = 3.141592653589793 ;//定义

变量只能被定义一次,但可被多次声明

 

2.2.3 标识符

字母和下划线开头

 

变量命名规范

 1. 标识符体现实际意义

 2. 变量名用小写字母

 3.自定类名开头大写

 4. 单词间区分 student_loan

 

2.2.4 名字的作用域

作用域(scope)是程序的一部分。c++大多数作用域以花括号分隔。

定义在main函数中的sum变量

main和定义在函数体外的名字具有全局作用域(global scope)

sum具有块作用域(block scope)

建议第一次使用变量时再定义它

 

嵌套的作用域

除局部变量正在作用域内(in scope)

规则如

  ::reused

使用作用域操作符(::)来覆盖默认的作用域规则

因为全局作用域本身没有名字,所以当作用域操作符左侧为空时,向全局作用域发出请求获取作用域操作符右侧名字对应的变量

Warning: 如果函数可能会用到全局变量,则不宜在定义一个同名的局部变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值