第2章 C语言基本概念
编译和链接
第4章 表达式
左值
自增和自减
++i 比 i++ 操作更好
第7章 基本类型
sizeof运算符
- 获取数据类型的字节数
- sizeof能求得静态分配内存的数组的长度
- sizeof不能求得动态分配的内存的大小
第8章 数组
数组下标
数组下标是相对数组首地址的地址偏移量,使用下标访问数组元素时要避免访问越界。
数组初始化
- 数组初始化时可以只给第一个元素赋值为0,数组中剩余元素会初始化为0。
- 可以在定义数组时不指定数组大小,通过初始化元素数量确定数组大小。
第12章 指针和数组
指针用于数组处理
- 指针有类似数组名访问数组元素的方式,使用 [] 运算符获取相对指针保存的地址的偏移量的数组元素。
- 可以通过对指针加正整数的方式实现指针向数组尾部移动
第14章 预处理器
宏定义
- 代替全局变量
- 消除魔数
- 方便程序的修改,使用同一个值的地方,只需要修改宏定义
- 带参数的宏定义要使用 () 和 do {…} while(0) 保护执行语句
- #运算符可以用于将运算符后的字符转换为字符串,##运算符可以将运算符前后的标识符连接成一个标识符
条件编译
- 使用条件编译开关调试代码块,控制调试信息的输出
- 使用条件编译保护头文件,避免同一个头文件被多次包含
第17章 指针的高级应用
动态分配数组
使用malloc函数分配动态存储空间,需要配合 sizeof 运算符计算指定类型的元素字节数,并分配其整数倍的空间。
释放存储空间
- 使用 free() 函数释放动态分配的存储空间
- 释放空间后的指针需要置为NULL,避免出现野指针
第18章 声明
static存储类型
- static声明的变量会存储在静态区,其值在整个程序生命中有效,不会和局部变量一样因为函数执行返回而销毁。
- 使用static声明可以使变量和函数只在本文件内可见,实现“封装”的效果
|