导图社区 第五章循环和关系式表达
C 自学笔记 第五章循环和关系式表达,内容包含: 5.1 for 循环 5.2 While循环 5.3 do while 循环 5.4 基于范围的for循环 5.5 循环和文本输入 5.6 嵌套循环和二位数组
药理学 第十章肾上腺素受体激动药 主要药物的机理、作用,希望这份脑图对你有帮助。
药理学 第九章胆碱受体阻断药——N胆碱受体阻断药 主要药物的机理、作用,希望这份脑图对你有帮助。
药理学 第八章胆碱受体阻断药——M胆碱受体阻断药 主要药物的机理、作用,希望这份脑图对你有帮助。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
第五章 循环和关系式表达
5.1 for 循环
1. 循环顺序
1||| 设置初始值
2||| 执行测试,看看循环是否应该进行
注意:测试表达式最终转化为bool类型
x < y 将被判定为bool值
3||| 执行循环操作
4||| 更新用于测试的值
2. 关于表达式
1. 表达式与语句
1. 任何值 或 任何有效的值和运算符的组合 都是表达式
2. 表达式加上; 都可以成为语句,但不一定有意义
2. 非表达式与语句
1. 若语句删除; 则有可能不是表达式,且可能非法
3. 修改规则
1. for循环中可使用声明语句表达式
3. 回到for循环
1. 计算阶乘
1. 计算
2. 输出
2. 修改步长
1. i = i + by
4. 使用for循环访问字符串
5. 递增运算符(++)与递减运算符(--)
1. X++
1. 使用后+1
2. C++没有规定是在每个子表达式之后递增 还是计算整个表达式后再递增
2. ++X
1. 使用前+1
6. 副作用与顺序点
1. 副作用:计算表达式时对某些东西(如存储在表达式中的值进行了修改)
2. 顺序点:意味着在处理下一条语句前,赋值运算符,递增运算符,递减运算符执行的所有操作都应该完成
7. 前缀格式与后缀格式
1. 如果递增表达式或递减的表示式未被使用,则++X的速度快于X++
8. 递增/递减运算符和指针
1. 运算符的位置与优先级
1. 前缀递增、递减和解除引用运算符的优先级相同
从右向左结合
2. 后缀递增、递减的优先级相同,并优于前缀和解除引用运算符
从左向右结合
2. 举例
*++pt
式子的值
pt指针先跨过指向类型的长度的地址,后取指向地址的值,即取数组第二个值
此时pt
注意pt+1存进了pt,那现在pt指向数组第二个值的地址
++*pt
pt先取值,取值后再+1
注意pt是先取值,所以现在所指向的地址的值+1
从右到左
(*pt)++
根据括号,先对pt取值,取值后再+1
*pt++
根据优先级,pt先pt指针先跨过指向类型的长度的地址,后取指向地址的值,即取数组第二个值
注意pt+1存进了pt,那现在pt指向数组第二个值的地址,相对于第三个值
从左到右
9. 组合运算符
1. L+=R
将L+R赋值给L
2. L-=R
将L-R赋值给L
3. L*=R
将L*R赋值给L
4. L/=R
将L/R赋值给L
5. L%=R
将L%R赋值给L
10. 复合语句(语句块)
1. 用花括号来构造一条复合语句
2. 注意花括号内定义的变量只能在括号内使用
11. 逗号运算符
1. 可以在只能放一个表达式地方,用 , 来放多条表达式
2. 注意在声明变量时, ,是分隔符而不是运算符
3. 注意逗号运算符的值是第二部分的值
1. cats = 17, 240
cats=17
2. cats=(17,240)
cats=240
3. ,运算符优先级较低
12. 关系表达式(关系运算符)
1. <
小于
2. <=
小于等于
3. ==
等于
4. >
大于
5. >=
大于等于
6. !=
不等于
7. 注意
关系运算符优先级低于算术运算符
比较结果为真——ture,为假——false/ 1和0
13. 赋值、比较和可能犯的错误
请勿混淆==和=
14. C风格字符串的比较
注意,Char数组并不能直接使用 ==
应该使用 strcmp( , )
若相等则返回0,第一个字符串按字母顺序在第二个字符串前面则返回正数,第一个字符串按字母顺序在第二个字符串后面则返回负数
即相等为0,不等为非0
15. 比较string类字符串
可以直接使用 !=
5.2 While循环
1. 定义
1. 没有初始化和更新的for循环,只有测试条件和循环体
2. for 与 while
1. for在循环中初始化一个局部变量,但while不能这么做
2. 循环体中如果包含continue语句则有所不同
3. 等待一段时间:编写延时循环
1. 符号常量 —— CLOCKS_PER_SEC
1. 等于每秒钟包含的系统时间单位数
2. 将系统时间除以这个值可得到秒数
2. 定义别名
#define BYTE char
此种不能使用,来创立多个别名
typedef char byte
可以使用, 来创建多个别名
5.3 do while 循环
1. 出口条件循环
2. 先执行循环体,再根据测试表达式,判断是否要继续执行循环
5.4 基于范围的for循环
5.5 循环和文本输入
1. 使用原始的cin进行输入
1. 选择哨兵字符——作为停止标记
2. 注意 cin忽略空格和换行符,回显时将不会显示空格和换行符
2. 使用cin.get(char)进行补救
1. cin.get 能捕获空格、制表符以及换行符并赋值给ch
3. 使用哪一个cin.get
1. 函数重载
2. cin.get接受两个参数
1. 数组名(字符串(char*)类型的地址)
2. ArSize(int类型的整数)
3. cin.get接受一个参数
cin.get(ch)
只接受一个字符
4. cin.get不接受参数
cin.get()
用于吸收空字符或不需要的字符
4. 文件尾条件
1. 检测文件尾EOF
1. 检测到EOF后,cin将两位(eofbit 和 failbit)设置为1
2. 可以通过成员函数 cin.eof() 和 cin.fail()来查看
1. 检测到EOF——返回bool值ture
2. 否则返回false
2. EOF结束输入
当cin方法检测到EOF时,cin将不读取输入,再次调用也不行
此时应使用cin.clear( )方法清除标记
3. 常见的字符输入做法
多种类型,最终都归于bool转换来判断
5.6 嵌套循环和二位数组
二维数组的声明
二位数组的打印
利用双层for循环
2. 初始化二维数组
1. 用一系列逗号分隔一位数组的初始化(花括号括起的)
3. 使用二维数组
利用双层for循环读取
浮动主题