2021.1.24学习日志

c++的学习 接2021.1.23

2.2变量

  变量提供一个拥有具体名称和可供操作的储存空间,c++中每一个变量都有其数据类型,而数据类型就决定了变量所占的空间大小和布局方式、以及所能参与的运算,对于c++程序员来说,变量和对象一般可以互相交换,何为对象,对象的含义有很多,但大多数人习惯认为对象是具有某种数据类型的内存空间(对象=有数据类型的空间)

2.2.1变量的定义

  和c语言一致首先是类型说明符,其中变量名以逗号隔开,最后以分号结束。
初始值
  我们应首先明确,初始化不是赋值初始化和赋值就是两个完全不同的操作,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来替代
  当对象在创建时获得了一个特定的值,我们说这个对象被初始换了,用以初始值的可以是任意的表达式。当一次定义了两个或多个变量时,对象的名字随着定义也就可以马上使用了
列表初始化
  作为c++11新标准的一部分,现在用花括号来初始化变量得到了全面的运用,这种初始化的方式称为列表初始化,例如:
在这里插入图片描述
这里仅作介绍,后来会在3.3.1节中具体学习
  这里需要注意的是当用于内置类型的变量时,这种初始化形式有一个重要特点:如果我们使用列表初始化且初始值存在丢失信息的风险时,编译器将报错
默认初始值
  如果定义变量时没有指定初始值,则变量会被默认初始化。默认值取决于变量类型和变量的位置
  如果时内置类型,它的值由定义的位置决定,定义于任何函数体之外的变量被初始化为0,另一种情况就是定义在函数内的内置类型将不被初始化,此时访问此对象将存在危险
  每个类各自决定其初始化对象的方式。而且,是否允许不经初始化就定义对象也由类自己决定。如果类允许这种行为,它将决定对象的初始值到底是什么。绝大多数类都支持无须显式初始化而定义对象,这样的类提供了一个 合适的默认值。
  总结一下就是:定义于函数体内的内置类型的对象如果没有初始化,则其值未定义。类的对象如果没有显式地初始化,则其值由类确定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值