2020-C++高级程序设计-C++ 数据
C++ 数据
1. 结构化程序设计
- Data Structure + Algorithm
2. 数据
- 数据的组成:名、值、地址、类型、性质
2.1. 数据类型
- 基本类型:都属于Built-in的类型
- 整型:int
- 短整型,short int
- 整形,int
- 长整型,long int
- 字符型,char
- 浮点型:float
- 单精度型,float
- 双精度型.double
- 长双精度型.long double
- 布尔型,bool
- 整型:int
- 派生类型:
- 指针类型,*
- 枚举类型,enum
- 数组类型,[]
- 结构体类型,struct
- 公用体类型,union
- 类类型,class
- 空类型,void
- 数据类型是第一层的封装
- 数据类型包括了Value Set和Operation
2.1.1. 抽象数据类型 ADT
- Mathmatical Model
- 约束着我们的操作:类型决定了取值
- 类型系统:
- 强/弱:是指类型严格与否,弱类型允许进行隐式转换
- 静/动:静是指在编译之前就已经确定类型,而动是指在编译过程中确定类型。
- compiler + linker
- C++的特征:
- 强类型(通过特殊的手段是可以打破强类型的手段)
- 动/静结合
- 类型安全不能代替测试
- 动态类型和静态类型的区别
- java:“666”/3,编译报错
- python: “666”/3,运行报错
2.1.2. 变量修饰符
- 注解:对于char、int、float、double(四种基本数据类型)和修饰符(long、short、signed、unsigned):
- char只可以被signed和unsigned修饰
- float不能被修饰
- double只能用long修饰
- int可以被四种修饰符组合修饰
- 省略表示
2.1.3. sizeof操作符
- 用来返回该数据占有的内存空间的大小。(字节)
2.1.4. typedef关键字
- 用来为已有的类型定义一个同义词(别名)
- 格式:
typedef [原本类型] [同义词/别名]
1 |
|
- 提高程序可移植性(应用的价值所在)
- 16位系统:
typedef int INT16
- 32位系统:
typedef short INT16
- 16位系统:
- 是为了已有类型定义别名,而不是定义新的类型
2.2. 常值
2.2.1. 数值常量
- 整形常量的表示
- 0开头:八进制
- 0X开头:十六进制
- 其他正常进制:十进制
- 浮点数的表示
- 十进制小数形式:78.
- 指数形式(浮点形式):3.14*100,字符 数字部分 指数部分
- 字符常量
- 普通的字符常量
- 转义字符常量
- 字符串常量:字符串结尾
\0
- 符号常量:
- #define NUM 10
- 进行预定义操作
2.2.2. 枚举常量
- 直接输出枚举常量,会在屏幕上显示对应的值,而不是枚举的名称
- 不能直接给枚举类赋一个int值,可以today = weekday(4),其中weekday是预定义好的枚举类。
2.3. 变量
2.3.1. 局部变量
- 生存域,在函数局部等地方生存。
2.3.2. 全局变量
- 从定义位置到程序结束都是有效的。
2.3.3. 自动变量
- 如果不用static声明变量类型,编译器对它们是动态地分配储存空间的
2.3.4. 指针变量
- int *pointer;定义
- 间接访问指针变量:
- &取地址运算符
- *间接访问运算符:访问地址上的函数值。
2.3.5. 作用域
- 文件作用域
- 函数作用域
- 块作用域
- 函数原型作用域
2.3.6. 变量的存储类别
- 动态存储方式
- 静态存储方式
- 存储类别有:
- 自动的(auto)
- 静态的(static),阻止本程序的有些变量被其他程序使用
- 寄存器的(register)
- 外部的(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/