### 二级C语言基础知识总结
#### 一、C语言词汇概览
在C语言中,基本的词汇单元包括标识符、关键字、运算符、分隔符、常量以及注释符。
- **标识符**:用于命名变量、函数、数组等,遵循一定的命名规则。
- **关键字**:C语言预定义的保留字,如`if`、`else`、`for`、`while`等,用于控制程序流程和声明变量属性。
- **运算符**:用于执行数学和逻辑运算,如加减乘除、逻辑与或非等。
- **分隔符**:如逗号、分号,用于分隔语句和表达式中的元素。
- **常量**:固定的数值或字符串,如数字123、字符串"hello"。
- **注释符**:用于添加代码注释,不参与编译,提高代码可读性。
#### 二、变量作用域与存储类别
C语言中的变量作用域分为四级:
1. **程序级**:整个程序中都可见。
2. **文件级**:限于文件范围内可见。
3. **函数级**:仅在函数内部可见。
4. **程序段级**:限于特定的代码块可见。
变量必须先定义后使用,未定义的变量若被使用会导致编译错误。变量定义时未指定存储类,默认情况下,在函数体外定义的变量为外部类,在函数体内定义的为自动类。定义变量时可选择性地给出初始值,其中外部类和静态类变量有默认值(通常为零),自动类和寄存器类变量则无默认值。
#### 三、数据类型与运算符优先级
C语言的数据类型从低到高排序为:`int` → `unsigned` → `long` → `float` → `double`。单目运算符优先级高于双目,双目高于三目。类型转换、地址与、长度等运算符属于一级优先级,而逻辑与、逻辑或、条件运算符分别位于较低级别。按位运算符如`&`、`|`、`~`和逻辑运算符`&&`、`||`、`!`在处理方式上有本质区别,前者处理二进制位,后者处理真假值。
#### 四、数组与指针
数组可以进行初始化,通过初始值列表设定每个元素的值。指针用于存储变量的地址,指向同一数组的两个指针可以通过相减运算计算两者之间的距离,也可以进行比较。
#### 五、运算符结合性与求值顺序
运算符的结合性决定了其在表达式中的结合方向,如从左至右或从右至左。C语言中大多数运算符的结合性为左结合,但如单目运算符、条件运算符、赋值运算符等为右结合。求值顺序方面,逻辑运算符`&&`和`||`采用短路求值,条件运算符先求左侧操作数,逗号运算符先求左侧后求右侧。
#### 六、函数参数与特殊注意
函数参数个数的判断基于实际传递的参数数量,如`gao(x,y)`有两个参数,而`gao((x,y))`被视为一个复合表达式的单参数。按位运算符和逻辑运算符在处理数据的方式上有显著差异,前者关注二进制位,后者关注真假值的逻辑判断。
以上是C语言的基础知识总结,涵盖了词汇概念、变量管理、数据类型、运算符、数组与指针、运算符结合性以及函数参数等核心要点,对于初学者理解和掌握C语言编程至关重要。