2020-C++高级程序设计-C++ 数据

C++ 数据

1. 结构化程序设计

  1. Data Structure + Algorithm

2. 数据

  1. 数据的组成:名、值、地址、类型、性质

2.1. 数据类型

  1. 基本类型:都属于Built-in的类型
    1. 整型:int
      1. 短整型,short int
      2. 整形,int
      3. 长整型,long int
    2. 字符型,char
    3. 浮点型:float
      1. 单精度型,float
      2. 双精度型.double
      3. 长双精度型.long double
    4. 布尔型,bool
  2. 派生类型:
    1. 指针类型,*
    2. 枚举类型,enum
    3. 数组类型,[]
    4. 结构体类型,struct
    5. 公用体类型,union
    6. 类类型,class
  3. 空类型,void
  4. 数据类型是第一层的封装
    • 数据类型包括了Value Set和Operation

2.1.1. 抽象数据类型 ADT

  1. Mathmatical Model
  2. 约束着我们的操作:类型决定了取值
  3. 类型系统:
    1. 强/弱:是指类型严格与否,弱类型允许进行隐式转换
    2. 静/动:静是指在编译之前就已经确定类型,而动是指在编译过程中确定类型。
    3. compiler + linker
  4. C++的特征:
    1. 强类型(通过特殊的手段是可以打破强类型的手段)
    2. 动/静结合
    3. 类型安全不能代替测试
  5. 动态类型和静态类型的区别
    1. java:“666”/3,编译报错
    2. python: “666”/3,运行报错

2.1.2. 变量修饰符

  1. 注解:对于char、int、float、double(四种基本数据类型)和修饰符(long、short、signed、unsigned):
    1. char只可以被signed和unsigned修饰
    2. float不能被修饰
    3. double只能用long修饰
    4. int可以被四种修饰符组合修饰
  2. 省略表示

2.1.3. sizeof操作符

  1. 用来返回该数据占有的内存空间的大小。(字节)

2.1.4. typedef关键字

  1. 用来为已有的类型定义一个同义词(别名)
  2. 格式:typedef [原本类型] [同义词/别名]
1
typedef double profit;
  1. 提高程序可移植性(应用的价值所在)
    • 16位系统:typedef int INT16
    • 32位系统:typedef short INT16
  2. 是为了已有类型定义别名,而不是定义新的类型

2.2. 常值

2.2.1. 数值常量

  1. 整形常量的表示
    1. 0开头:八进制
    2. 0X开头:十六进制
    3. 其他正常进制:十进制
  2. 浮点数的表示
    1. 十进制小数形式:78.
    2. 指数形式(浮点形式):3.14*100,字符 数字部分 指数部分
  3. 字符常量
    1. 普通的字符常量
    2. 转义字符常量
    3. 字符串常量:字符串结尾\0
  4. 符号常量:
    1. #define NUM 10
    2. 进行预定义操作

2.2.2. 枚举常量

  1. 直接输出枚举常量,会在屏幕上显示对应的值,而不是枚举的名称
  2. 不能直接给枚举类赋一个int值,可以today = weekday(4),其中weekday是预定义好的枚举类。

2.3. 变量

2.3.1. 局部变量

  1. 生存域,在函数局部等地方生存。

2.3.2. 全局变量

  1. 从定义位置到程序结束都是有效的。

2.3.3. 自动变量

  1. 如果不用static声明变量类型,编译器对它们是动态地分配储存空间的

2.3.4. 指针变量

  1. int *pointer;定义
  2. 间接访问指针变量:
    1. &取地址运算符
    2. *间接访问运算符:访问地址上的函数值。

2.3.5. 作用域

  1. 文件作用域
  2. 函数作用域
  3. 块作用域
  4. 函数原型作用域

2.3.6. 变量的存储类别

  1. 动态存储方式
  2. 静态存储方式
  3. 存储类别有:
    1. 自动的(auto)
    2. 静态的(static),阻止本程序的有些变量被其他程序使用
    3. 寄存器的(register)
    4. 外部的(extern)

2020-C++高级程序设计-C++ 数据
https://spricoder.github.io/2020/07/01/2020-C-plus-plus-advanced-programming/2020-C-plus-plus-advanced-programming-C++%20%E6%95%B0%E6%8D%AE/
作者
SpriCoder
发布于
2020年7月1日
许可协议