导图社区 第四章复合类型
C 自学笔记 第四章复合类型,分享的内容有: 1. 数组(array) 2. 字符串String 3. string类简介 4. 结构简介 5. 共用体Union 6. 枚举enum 7. 指针和自由空间 8. 指针、数组和指针算术 9. 类型组合 10. 数组的替代品
药理学 第十章肾上腺素受体激动药 主要药物的机理、作用,希望这份脑图对你有帮助。
药理学 第九章胆碱受体阻断药——N胆碱受体阻断药 主要药物的机理、作用,希望这份脑图对你有帮助。
药理学 第八章胆碱受体阻断药——M胆碱受体阻断药 主要药物的机理、作用,希望这份脑图对你有帮助。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
第四章 复合类型
1. 数组(array)
1. 数组声明
1. 存储的每个元素的值的类型
2. 数组名
使用标识符索引, month[0]——第一个元素
3. 数组元素数
2. 数组初始化
1. 只有定义时才能使用初始化
2. 可部分初始化,其余为0
3. 数组元素数可空白,将自动计算
4. 不可缩窄操作!
2. 字符串String
1. 特殊的性质
1. 字符串要以空字符结尾 \0 ,ASCII码为0
2. 字符串常量/字符串字面值
1. 用引号“”指出的字符串
2. 隐式包含了空字符!请计算在内
3. 计算字符串长度
1. strlen()——数组中字符串的长度,不计算\0
2. 数组的长度不能小于 strlen()+1
3. sizeof()——计算\0
4. 字符串的输入
1. cin——使用空白、制表符、换行符确定字符串结束的位置
2. 字符串的输入——面向一行
1. 面向行的输入: getline()——回车键输入的换行符确定输入结尾
记住\0!
但却不保存换行符
2. 面向行的输入: get()——回车键输入的换行符确定输入结尾 但不丢弃换行符,留在输入队列中
子主题
3. 空行与其他问题
5. 混合输入字符串与数字
1. 处理换行符的问题!!!
3. string类简介
1. 包含头文件string——#include<string>
2. 性质
1. string对象声明为变量,可以进行运算,例如赋值,加减等
2. 类设计将自动处理string的大小
3. string的其他操作——对于char来说——#include<cstring>
1. strcpy
赋值2到1
2. strcat
添加2到1后面
3. strlen
返回字符串所含字符数(不含空字符)
4. string类型可使用成员函数 size()计算字符数
4. string类I/O
1. 与cin.getline (char,20) 不同
2. string为 getline (cin,str)
1. 使用友元函数
4. 结构简介
1. 性质
1. 定义结构描述——各种数据类型
1. 更灵活
2. 创建结构变量
2. 使用结构
1. 命名规则
1. {};
2. 初始化规则
1. 不允许缩窄转换
2. 赋值用,隔开 不用加;
3. 成员赋值
1. 直接使用=号赋值
4. 结构数组
同样是,隔开 内{}表示赋值 外{}表示数组 ,逗号表示赋值分隔符
5. 共用体Union
1. 储存不同数据类型
2. 同时只能存储其中一种类型
3. 共用体长度为最大成员的长度
6. 枚举enum
1. 新类型枚举,所含的为符号常量
2. 默认从0开始,第二个为1,以此类推
3. 枚举没有算术运算
枚举可转换为整型,但整型不能自动转化为枚举
4. 在取值范围内,可用强制类型转换赋值
2. 设置枚举的值
于花括号内直接赋值
3. 枚举的取值范围
取值范围在枚举常量的最大值和最小值之间
7. 指针和自由空间
1. 定义
1. &——地址运算符
1. 得到地址
2. *——间接值(indirect value)/解除引用(dereferencing)运算符
1. 得到该处地址的值
2. 声明和初始化指针
1. 注意指针的类型,这对于指针的运算来说需要跨过几个该类型的长度。
3. 指针的危险
1. 对指针使用*pt 进行运算之前,请给pt赋予一个具体的地址,否则将出现错误。
4. 指针和数字
1. 用数字赋予地址
pt = (int*)0xB8000000;
5. 使用new来分配空间
1. 指针的真正用武之地——运行阶段分配未命名的内存以存储值
2. new——找到一个长度正确的内存块,并返回地址
3. 变量的值存储在栈(stack)的内存区域中,而new存储在堆(heap)或自由存储区(free store)中
6. 使用delete释放内存
1. 释放指针指向的内存,而不会删除指针本身,
7. 使用new来创建动态数组
1. 静态联编——编译时分配内存
2. 动态联编——使用new,运行过程中分配内存
2. 使用new创建动态数组
1. new 返回的是数组的第一个元素的地址
3. 使用动态数组
指针和数组基本等价!
但是数组不能作为变量加减
指针可以进行加减
8. 指针、数组和指针算术
C++将数组名解释为地址,指针+1表示为增加对应类型的字节数
sizeof
数组——数组的长度
指针——指针的长度而不是指向对应地址的内容
2. 指针小结
1. 声明指针
2. 给指针赋值
3. 对指针解除引用
4. 区分指针和指针所对应的值——&和*
5. 数组名
数组名对应数组第一个值的地址
6. 指针算术
指针可以加上或减去一个整数
指针之间可以相加减,得到整型数
7. 静态联编与动态联编——编译时分配内存还是运行时分配内存
8. 数组表示法和指针表示法
指针后加方括号等同于数组名加方括号
3. 指针和字符串
注意
1. 在cout和多数C++表达式中,char数组名、char指针以及用引号括起的字符串常量都被解释为字符串第一个字符的地址。
2. 如果需要修改ps的地址,并赋予新的值,不能直接修改ps指向的地址,这样只会使ps指向的地址改变,而不能改变ps的地址,应该使用new 函数,再使用库函数strcpu();
4. 使用new创建动态结构
1. 创建类型
2. 创建结构类型对应的指针
3. 访问对应成员—— ->
ps -> price
(*ps).price
4. 自定义函数——输入一串字符串,返回指向该字符串的指针(利用strcpy,strlen)
5. 自动存储、静态存储和动态存储
1. 自动存储
P97
2. 静态存储
3. 动态存储
9. 类型组合
指针的指针
auto——自动匹配类型
10. 数组的替代品
vector
array