C++Primer(第五版)学习笔记——变量(第二章)

对象是指一块能存储数据并具有某种类型的内存空间。

变量提供一个具名的、可供程序操作的存储空间。(二者好像没什么不同)

初始化:

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

在同一条定义语句中,可以用先定义的变量值去初始化后定义的其他变量。

定义于任何函数体之外的内置类型如果没有被显示初始化,会被默认初始化为0,而在函数内部内置类型不会被初始化,未被初始化的内置类型变量的值是未定义的。

类的对象如果没有被显示初始化,则其值由类确定。

声明和定义

声明规定了变量的类型和名字。

定义不仅规定了变量的类型和名字还为变量申请了存储空间,也可能初始化变量。

如果想要声明而不是定义一个变量,就在变量名前加上关键字extern(因为会默认初始化),且不要显示的初始化变量。

在函数体内部,如果试图初始化一个由extern关键字标记的变量,将引发错误。(extern的目的是在文件之间共享变量,如果在函数体内部定义一个extern关键字标记的变量,那么由于函数体内变量作用域仅限于函数体,将会导致出错。

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

编译器必须知道每一个实体对象的类型,所以在使用变量之前必须声明其类型。

标识符:

用户自定义的标识符不能连续出现两个下划线,也不能以下划线紧连大写字母开头。

定义在函数体外的标识符,不能以下划线开头

名字的作用域:

允许字内层作用域中重新定义外层作用域已有的名字,此时内层作用域中的变量会隐藏外层作用域中的变量,但是可以使用作用域操作符来覆盖默认的作用域规则,访问外层的变量。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值