第二章 变量和基本类型

 

C++语言定义的基本类型:字符型、整型、浮点型等。C++还提供了用于自定义数据类型的机制。
2.1基本内置类型

C++定义了一组表示整数、浮点数、单个字符和布尔值的算术类型,另外还定义了一种称为void的特殊类型。
 2.1.1 整型
 表示整数、字符和布尔值的算术类型合称为整型。
 让存储具有结构的最基本方法是用块(chunk)处理存储。大部分计算机都使用特定位数的块;来处理存储,块的位数一般是2的幂。但是通常将8位的块作为一个字节,32位或4字节作为一个“字(word)”。
 C++中当将一个超出其取值范围的值赋给某个指定类型的对象时,如果该类型是unsigned型,则编译器会自动将该值对此数据类型可能取得的最大值求模,然后去所得值;而当该类型是signed型时,由编译器确定实际的赋值,有很多编译器处理signed型和unsigned型采用同样的方式,但是不能保证都会这样处理。
 2.1.2 浮点型
 类型float、double和long double分别代表单精度浮点型数、双精度浮点型数和扩展精度浮点型数。一般float用一个字表示,double用两个字表示,long double用三个或四个字表示。

2.2 字面值常量

只能用它的值称呼它,值不能改变的量叫做字面值常量。整数字面值常量可以使用十进制、八进制、十六机制中的任何一种来表示。通常可以用十进制或者科学计数法来表示浮点字面值常量。true和false是布尔型的字面值常量。以反斜线开始的转义字符是不可打印字符和特殊字符的字面值常量。字符串字面值是一串字符常量。

2.3 变量

 2.3.1 什么是变量
 变量提供了程序可操作的有名字的存储区。
 2.3.2 变量名
 变量名即变量标识符,有字母、数字和下划线组成,而且变量标识符只能有字母或下划线开始。另外C++保留了一组词作为C++语言的关键字,这些词不能用作便量名,同时,C++还保留了一组词,用作各种操作符的替代名,这些词也不能用作变量名。
 2.3.3 定义对象
 每个定义都是以类型说明符开始,后面跟着一个或多个以逗号分开的说明符的列表,以分号结束定义。c++支持两种对变量的初始化方式:复制初始化(用=号赋值)和直接初始化(把初始化式直接放在括号中)。
 2.3.4 变量初始化规则
 当定义没有初始化的变量时,系统有时会帮我们自动初始化,但是系统提供什么样的值取决于变量的类型,也取决于变量定义的位置。
 内置类型是否自动初始化取决于变量定义的位置,定义在函数体外的变量,系统都自动初始化为0,函数体内的变量是不会自动初始化的,除了使用赋值操作对变量进行赋值的之外,任何没有初始化的变量用作其他用途都是没有实际意义的。
 每个类都定义了该类的对象应该怎样初始化,类通过定义一个或多个构造函数来控制类对象的初始化。如果定义某个类对象时没有提供初始化式,这个类也可以定义初始化时的操作,它是通过定义一个特殊的构造函数——默认构造函数来实现的。
 2.3.5 声明和定义
 变量的定义:用于为变量分配存储空间,还可以为变量指定初始值。在C++程序中一个变量有且仅有一个定义。
 变量的声明:用于向程序表明变量的类型和名字,定义也是声明:当定义变量的时候声明了它的类型和名字。不定义变量的声明包括在对象名、对象类型恰的关键字extern,只有当声明也是定义的时候,声明才可以初始化。
 2.3.6 名字的作用域
 用来区分名字的不同意义的上下文称为作用域。

2.4 const 限定符
定义const对象:
 定义一个变量代表一个常数的方法有一个严重的问题:即其值是可以修改的,const限定符提供了一个解决办法,他把一个对象转换成一个常量。因为常量在定义后就不可修改,所以定义时一定要初始化。
非const变量默认为extern。要是const变量能在其他的文件中访问,必须显式的制定它为extern。

2.5 引用

引用就是对象的另一个名字,在实际的程序中引用主要用作函数的形式参数。
引用是一种符合类型,通常是在变量名前加“&”符号来定义。引用必须用与该引用同类型的对象初始化,不能定义引用类型的引用。
非const引用只能绑定到与该引用同类型的对象,const引用则可以绑定到不同但相关的对象或绑定到右值。

2.6 typedef 名字

typedef可以用来定义类型的同义词。也可以用作类型说明符,它以关键字typedef开始,后面是数据类型和标识符。

使用typedef的目的:
为了隐藏特定类型的实现,强调使用类型的目的;
简化复杂的类型定义,使其更易理解;
允许一种类型用于多个目的,同时使得每次使用该类型的目的明确。

2.7 枚举

定义和初始化枚举:枚举的定义包括关键字enum,气候是一个可选的枚举类型名,和一个花括号括起来、用逗号分开的枚举成员列表。
枚举成员是常量。
每个enum都定义了一种唯一的类型。
(枚举与普通的常量定义的差别)枚举不但定义了整数常量集,而且还把它们聚集成组。

2.8 类类型

C++中通过定义类来自定义数据类型。
每个类都定义一个接口和一个实现,接口是由使用该类的代码需要执行的操作组成的,实现一般包括该类所需要的数据。实现还包括定义该类需要的但又不供一般性使用的函数。
类体可以为空。类体定义了组成该类型的数据和操作。这些操作和数据是类体的一部分,称为类的成员,操作称为成员函数,数据则称为数据成员。
定义类的数据成员和定义一般的变量有些相似,不同之处在于,一般不把类成员的初始化作为其定义的一部分。
类中public定义的成员在程序的任何部分都可以访问,不是类的组成部分的代码不能访问private成员。
C++支持用struct关键字定义类类型。使用class关键来定义类,那么定义在第一个标号钱的任何成员都隐式指定为private;如果使用struct关键字,那么这些成员都是public。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值