### C语言复习重点知识点梳理
#### 一、程序结构与执行流程
- **程序结构**:
- **顺序结构**:按照代码书写的先后顺序依次执行。
- **循环结构**:
- `for` 循环:适用于已知循环次数的情况。
- `while` 循环:当条件满足时进入循环体执行。
- `do...while` 循环:至少执行一次循环体,之后根据条件判断是否继续执行。
- **选择结构**:
- `if` 语句:根据条件的真假选择执行路径。
- `switch` 语句:基于多个条件选择不同的执行路径。
- **执行流程**:程序从`main()`函数入口开始执行,按照顺序结构进行,遇到循环或选择结构则按照相应的逻辑执行。
#### 二、数据存储与表示
- **数据存储**:所有数据在计算机内部均以二进制形式存储。
- **地址**:数据在内存中的位置即为其地址。
- **基本单位**:
- **位(bit)**:最小的信息单位,表示0或1。
- **字节(byte)**:由8个位组成的基本存储单位。
- **数值转换**:掌握二进制到十进制的转换方法。
#### 三、C语言基础知识
- **编译预处理**:不属于C语言本身,包括宏定义、文件包含等操作,不在运行时执行。
- **源程序**:以ASCII码形式存放在文本文件中。
- **主函数**:每个C语言程序必须有一个且仅有一个`main()`函数。
- **函数定义**:函数内部不可嵌套定义另一个函数。
- **算法特点**:算法必须有输出,可无输入。
- **控制流语句**:
- `break`:用于跳出循环结构和`switch`语句。
- **运算符优先级**:逗号运算符的优先级最低。
#### 四、标识符与数据类型
- **合法标识符**:由字母、数字和下划线组成,首字符必须是字母或下划线,不能是关键字。
- 示例:`_name`、`myVar1`。
- 错误示例:`1num`(首字符为数字)、`int`(关键字)。
- **实型数据**:合法形式如`2.333e-1`,其中`e`前后必须有数字,`e`后必须是整数。
- **字符数据**:
- 单引号 `'1'`:表示字符,占用一个字节。
- 双引号 `"1"`:表示字符串,占用两个字节(含空字符`'\0'`)。
- **整型、字符型、双精度**:
- 整型:通常占用两个字节。
- 字符型:占用一个字节。
- 双精度:通常占用四个字节。
- **转义字符**:例如`'\x6d'`(十六进制)、`'\141'`(八进制),注意八进制中不允许出现8和9。
#### 五、算术运算与类型转换
- **算术运算符优先级**:了解不同运算符之间的优先级关系及其结合性。
- **类型转换**:强制类型转换的正确语法为`(type)expression`,注意括号的使用。
- 示例:`(int)a`、`(int)(a+b)`。
- **表达式**:
- **赋值表达式**:结果为赋值目标的值。
- **自增/自减表达式**:理解`++a`与`a++`的区别。
- **逗号表达式**:结果为最后一个表达式的值。
#### 六、位运算
- **位运算**:包括位与、位或、位非、位异或、左移、右移等。
- 示例:`a<<2`表示将`a`左移两位。
- 注意:位运算通常需要先将十进制转换为二进制,再进行位操作。
- 特殊规则:在不丢失数据的情况下,左移一位相当于乘以2;右移一位相当于除以2。
#### 七、其他要点
- **八进制表示**:八进制数中不存在8和9,例如`018`是非法的。
- **模运算**:`%`操作符要求两边都必须是整数类型。
- **取整操作**:通过`int`类型声明或显式类型转换实现。
#### 八、输入输出
- **打印输出**:`printf()`函数的格式控制,如`%d`、`%c`、`%f`等。
- 示例:`printf("%d", a);`
- **读取输入**:`scanf()`函数用于从标准输入读取数据。
- 示例:`scanf("%d", &a);`
- 注意事项:需要传递变量的地址。
- **字符读写**:`getchar()`和`putchar()`函数用于读写单个字符。
- 示例:`char ch = getchar();`、`putchar(ch);`
通过以上知识点的学习和复习,可以全面理解和掌握C语言的基础知识和核心概念,为进一步深入学习编程打下坚实的基础。