← 首页·文章列表

C语言核心知识点复盘

一、字符串:初始化、常量与赋值陷阱

1. 用字符串字面量初始化字符数组时,必须给'\0'留位置

2. 字符串常量与字符常量不能混淆

3. 字符数组名不是可修改的左值


二、数组:大小匹配、部分初始化与参数传递

1. 初始化列表元素个数不能超过数组大小

2. 部分初始化时,未指定的元素自动置0

3. 数组名作为函数实参,传递的是首地址


三、指针:定义、使用与那些容易混淆的声明

1. 指针是用来存放地址的变量,不是存放某个变量的值

2. *与&的用法

3. 函数返回指针 vs 函数指针,声明差别巨大

4. 数组元素的多种引用方式


四、运算符:优先级与自增的左值要求

1. 运算符优先级顺序(由高到低)

2. 自增/自减运算符要求操作数是左值


五、函数:值传递、不可嵌套定义与数组参数

1. 值传递:实参与形参各自拥有独立存储空间

2. 函数定义不可嵌套,但调用可以

3. 带数组参数的函数要注意边界


六、结构体与枚举:初始化与默认值规则

1. 结构体数组初始化及成员运算

2. 结构体数组成员字符串访问

3. 枚举类型定义与元素值


七、关键字辨识


八、思维扩展与复习建议

1. 字符串的本质
不要将字符数组与字符串字面量混为一谈,搞清楚'\0'的存放位置。多练习strcpy、strlen与数组大小的关系。

2. 指针与数组的同一性
a[i]与*(a+i)无条件等价,数组名就是常量指针,但指针变量可以自增。理解int *p=a;后p[i]、&p[i]、*(p+i)的相互转换。

3. 运算符优先级的题海战术
优先级不必死记所有运算符顺序,但必须记住大段落(算术>移位>关系>逻辑>赋值),考试中常出判断结果和括号去留的题目。

4. 函数传参机制
所有参数传递都是“值传递”,形参是实参的副本。想修改变量本身,需要传地址,并在函数内用*p修改。

5. 结构体和枚举
它们是构造复杂数据的基础,初始化细节、成员访问、默认值的规则很有规律,掌握后拿分轻松。