1.6 语言标准
2.6 多个函数
函数原型、函数调用、函数定义
2.8 关键字和保留标识符
3.4.1 int类型
变量声明:
int erns;
int hogs, cows, goats;
3.4.2 其他整数类型
short、long、unsigned、signed
C90:unsigned long int / unsigned long、unsigned short int / unsigned short
C99:unsigned long long int / unsigned long long
3.4.9 类型大小
sizeof
4.2.1 char类型数组和null字符
空字符\0
4.2.3 strlen() 函数
#include < string. h>
4.3 常量和C预处理器
#define
4.3.1 const限定符
4.3.2 明示常量
limits.h
float.h
4.4.1 printf()函数
4.4.3 printf() 的转换说明修饰符
5.2.6 除法运算符:/
注意和和Java一样,整数除法的结果是整数。
5.2.7 运算符优先级
表达式树
5.6 带参数的函数
void pound(void) 与 void pound() 不是一回事
6.5 for循环
特别注意,C99之前计数变量必须在for循环外声明,这点与Java语法不同
const int NUMBER = 22;
int count;
for(count = 1; count <= NUMBER; count++){
printf("hello world!\n");
}
7.8 goto语句
避免使用
9.3.5 递归的优缺点
优点:为某些编程问题提供了最简单的解决方案
缺点:一些递归算法会快速消耗计算机的内存资源
注意使用场景
9.4.5 使用头文件
把函数原型和已定义好的字符常量放在头文件中是一个良好的变成习惯
9.5 查找地址:&运算符
一元&运算符给出变量的存储地址
9.7.1 间接运算符:*
解算指针存储地址中的值
9.7.2 声明指针
代码风格:
在声明指针时使用空格,比如:int * a;
在解引用是省略空格,比如:int b = *a;
10.1.1 初始化数组
使用const声明数组,可以把数组设为只读
10.3 指针和数组
数组名是数组首元素的地址,可以把它赋值给指针变量。
10.5 指针操作
千万不要解引用未初始化的指针
int * pt; //未初始化的指针
*pt = 5; //严重错误
10.7.1 指向多维数组的指针
int (* pz)[2]; //pz指向一个内涵两个int类型值的数组
int * pax[2]; //pax是一个内含两个指针元素的数组