- 编码:
Float编码:高8位存阶码,低24位存尾数
Int编码:用补码
正数的原码,反码,补码相同
例如:7=(0111)
负数的原码-7=(1111)
反码(1000)除了第一个符号位不变,其他取反
补码(1001)反码加一
其中,负数的符号位为1,整数为0.
- 三目操作符:(a>b)?a:b
式1成立则去式2,否则取式3
- switch()
{
Case 式1: //式1是常量表达式
语句序列1;
Break;
Case 式2: //式2是常量表达式
语句序列2;
Break;
Default:
语句;
}
- 递归
- 保护现场,把所有信息压栈
- 执行,返回
递推比递归运行更快。
- strcpy 字符串复制
strcmp比较字符串大小
strlen(“china”)=5;
sizeof(“china”)=6; //字符串结尾处有\0
8.循环语句
for
while
do while
9.指针
- 指针存储的是首地址
- Int *pi=NULL; //指针的初始化
- 指针的加减
Pi+1的值与类型有关,int型+4,char型+1
一般用于数组,否则会出现野指针。
10.数组
对于一个数组a
a[el]与(a+el)等价;
对于指针变量p
*(p+el)与p[el]等价
- 数组变量a的右值为数组首元素的地址(&a[0])
11.一维数组作为形参会:丢失长度;退化为指针
12.选择排序
13.冒泡排序
14.malloc函数常用方式:
int *pi=(int *)malloc(2*sizeof(int));
15.链表
- 数据域
- 指针域
- 头指针
16.函数形参出现指针的原因:
- 指针指向结构体,提高传参效率
- 修改对应实参的值
17.栈:
- 只有顶栈可以操作
- 先进后出
18.队列:
- 队头:允许删除
- 队尾:允许插入
- 先进先出
19.完全二叉树
- N个结点的完全二叉树的深度为:K=|log2 (n)|+1
- N个结点的完全二叉树,按层序编号:
i=1,结点i是二叉树的根,无双亲
i>1,其双亲结点[i/2]
如果2i>n,结点i无左孩子,否则其左孩子为2i
如果2i+1>n,结点i无右孩子,否则其右孩子为2i+1
20.前序遍历
21.中序遍历
22.后序遍历
23.堆调整
24.时间复杂度
25.二叉树的深度(N个结点)
[log2(n)]+1
26.内核空间从内到外:内核,系统调用
用户空间从内到外:shell/公用函数库,应用程序 (shell和公用函数库在同一层)
从用户空间跨到内核空间有较大的系统开销
27.文件编程
文件IO:系统调用次数多,开销大
标准IO:带有缓冲机制
28.网络编程基础
- 服务器的IP地址和端口号必须是固定值
29.数据库
建立和打开数据库:sqlite3 stu.db
在数据库里建表:>create table student(
>id integer primary key,
>name text,
>sex integer);
以及其他的插入,查看等操作
30.窗口操作(ncurses)
- 创建子窗口
- 清空子窗口
- 销毁子窗口