要点总结
1. getchar()、putchar()
- getchar()是一个不带任何参数的函数,它从输入队列中返回下一个字符。
- putchar()将待打印的内容变量作为参数,打印到屏幕。
- 这两个函数只处理字符,所以比scanf和printf速度更快、更简洁。
2. ctype.h
- 包含一些字符函数。
- 字符映射函数不改变原始的参数,这些函数只返回已修改的值。
3. else 与 if 配对
- 规则是如果没有花括号,else和离它最近的if匹配。
4. 逻辑运算符
- &&, ||, !
- 优先级:
- !优先级最高,与递增相同,比乘法高,只比圆括号低。
- &&比||高,但两者的优先级都低于关系运算符,比赋值运算高。
5. 循环辅助
- continue语句(跳转语句)
- 执行到该语句时,会跳过本次迭代的剩余部分,并开始下一轮迭代。
- 如果该语句在嵌套循环内,则只会影响包含该语句的内层循环。
- 对于while 和 do while,执行continue语句后的下一个行为是对循环的测试表达式求值。
- 对于for循环,执行该语句后的下一个行为是对更新表达式求值。
- break 语句(跳转语句)
- 程序执行到循环中的Break语句时,会终止包含它的循环,并继续执行下一阶段。
- 如果break语句位于嵌套循环内,它智慧影响包含它的当前循环。
6. 多重选择:switch 和 break
- 要对紧跟在switch后圆括号中的表达式求值。
- 程序会根据expression的值跳转至相应的case标签处。然后,执行剩下的所有语句,除非执行到break。
- expression 和 case标签必须是整数值(包括char类型),标签必须是常量或者完全由常量组成的表达式。
- 如果没有case标签与expression值相匹配,则跳转至default语句。如果没有default语句,则转至紧跟switch 语句后面的语句。
- break的作用是让程序离开switch语句,跳至switch语句后面的下一条语句。如果没有break语句,就会从匹配标签开始执行到switch末尾。
- 形式
switch (expression)
{
case label1: statement1 // 使用break跳出switch
case label2: statement2
default: statement3
}
7. goto语句(跳转语句)
- 由两部分构成:goto+标签名
- 例如, goto part2; part2: printf(" refined analysis:\n")
- 作用:使程序控制跳转至相应标签语句。冒号用于分隔标签和标签语句。标签名遵循变量命名规则,标签语句可以出现在goto语句之前或之后。
- 一般避免使用goto语句,因为C语言中存在替代goto作用语句的语句。