C++ Primer:第2章 变量和基本类型

总体结构图

第2章 变量和基本类型

2.1 基本内置类型

基本内容:

  1. 算术类型包含字符,整型数,布尔值和浮点数,空类型不对应具体值,仅用于无返回值时函数的返回类型等特殊场合。
  2. 类型转换:将对象从一种给定的类型转换为另一种类型。
  3. 字面值常量:整型字面值,浮点型字面值,字符字面值,字符串字面值,转义序列,字面值前缀和后缀,布尔字面值,指针字面值。

备注:

  1. 整型包括布尔类型和字符类型。
  2. bit是数据存储的最小单位,byte是数据处理的基本单位,字是整数运算的自然单位:1 word = 4 byte(32位机器), 1byte = 8 bit。
  3. 类型选择:若数值不为负选用无符号类型;整型运算选用int;算术表达式不用char或bool;浮点数运算选用double。
  4. 切勿混用带符号类型和无符号类型。

2.2 变量

基本内容:

  1. 变量定义:类型说明符+变量名列表。初始化,列表初始化,默认初始化。
  2. 变量声明与变量定义:声明和定义都规定变量的类型和名字,此外定义申请存储空间,可能初始化;变量只能定义一次,声明多次。
  3. 标识符:由字母、数字和下划线组成,必须以字母或下划线开头,区分大小写。
  4. 名字作用域:全局作用域,块作用域,内层作用域,外层作用域

备注:

  1. 初始化 != 赋值。
  2. 用{}进行列表初始化。默认初始化时,函数体外的变量被初始化为0,函数体内部的内置类型变量不会被初始化,是未定义的,类决定自己初始化对象的方式,如string默认初始化是空串。
  3. 变量名用小写,类名以大写开头,多个单词用下划线连接。
  4. 变量第一次使用时,在其前定义变量。

2.3 复合类型

基本内容:

  1. 引用即别名,并非对象,必须初始化,且只能绑定一个对象,不能绑定字面值或表达式计算结果,引用的类型与其所绑定对象的类型必须严格匹配(对常量的引用和对基类的引用例外)。
  2. 指针是“指向”另一种类型的符合类型。指针的值可以指向一个对象,可以指向紧邻对象所占空间的下一位置,可以是空指针,或者是无效指针。指针的类型与其所指向对象的类型必须严格匹配(指向常量的指针和指向基类的指针例外)。void*指针可以存放任意类型指针。
  3. 一条语句定义多个变量,但需注意各个变量类型;多重指针(int **);绑定指针的引用(int * &pi)。

备注:

  1. 声明语句=基本数据类型+声明符列表。
  2. 引用和指针都实现对其它对象的间接访问,但引用不是对象,指针是对象;引用必须初始化,指针无需在定义时赋初值;引用只能绑定一个对象,指针可以指向不同对象。
  3. 初始化所有指针。
  4. 有绑定指针的引用(int * &pi),但没有指向引用的指针,因为引用不是对象。

2.4 const限定符

基本内容:

  1. const定义常量,必须初始化,const对象不可修改,默认只在文件内有效。
  2. 引用的类型必须与其所绑定对象的类型一致。特例:只要表达式能转换成引用的类型,对常量的引用就允许以它作初始值。
  3. 指针的类型必须与其所指对象的类型一致。特例:允许指向常量的指针指向一个相应的非常量;本身是常量的指针必须初始化。
  4. 顶层const即对象本身是常量,底层const即指针指向的对象或引用绑定的对象是常量。
  5. constexpr变量一定是常量,必须用常量表达式初始化;只有字面值类型(算术类型、引用、指针)才能被定义成constexpr;constexpr只对指针有效,对指针对象无效

备注:

  1. 外部文件调用const常量,需对const常量的声明和定义都添加extern。
  2. 对常量的引用(const int &);指向常量的指针(const int *),本身是常量的指针(int * const p);对指针的引用(int * & ri)。
  3. 必须初始化的类型:引用、const、auto。

2.5 处理类型

基本内容:

  1. 类型别名typedef,定义类型而不定义变量。当类型别名与引用,指针混用时,类型别名是一个整体,不能与原类型替换。
  2. auto类型说明符可通过变量初始值推算出变量类型,auto定义必须初始化。当表达式是引用时,auto类型是引用绑定的那个对象的类型,auto忽略顶层const,只保留底层const。
  3. delctype类型指示符选择并返回操作数的数据类型,若操作数以括号括起来,则delctype类型永远是引用。

备注:

  1. 一条语句可定义多个变量,&和*只从属于其后的声明符,而非其前的基本数据类型。
  2. auto与delctype的区别:delctype返回操作数类型,若包含括号,则返回引用;auto类型一般是表达式类型,若是引用,auto是引用绑定的对象的类型,若是const,则auto忽略顶层const,保留底层const。

2.6 自定义数据结构

基本内容:

  1. Sales_data类型的定义与使用。
  2. 头文件的编辑,编译,运行。
  3. 预处理器,头文件保护符

备注:

  1. 对象的定义与类的定义最好不要放在一起。
  2. 类内的数据成员可用花括号和等号初始化,不能用圆括号初始化。
  3. 头文件一般都要设置保护符,保护符名字由类名构建,需全部大写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值