1、堆和栈的区别
访问速度、生长方向(堆向内存增加方向)、申请释放、空间大小
2、常见的数据结构有哪些
线性表的顺序表、链表、栈、队列、数。
3、常见的查找和排序的算法有哪些,具体实现、时间复杂度和空间复杂度
排序:冒泡排序、快速排序、简单插入排序
查找:二分法查找
具体实现待写。
4、TCP和UDP的区别
TCP:一对一连接,可靠性传输。
待补充
5、文件IO 和标准IO的区别
文件IO 是系统调用,有操作系统,标准IO是库函数的一个函数。
是否有缓存 、函数不一致。
待补充
6、链表的插入和删除
单链表和双链表。单链表的反转。
7、进程和线程的区别
进程是资源分配的最小单位,线程是运行的最小单位。
优缺点比较,进程中的一个线程崩了,进程也会崩掉。而进程之间不会相互影响。线程通信方便,公用一块内存,但是也有自己的空间保存数据等信息。
8、sqlite3数据库的基本操作
对表的创建和删除。
对数据进行增删改查。
9、shell脚本
用途、基本语法。
10、Makefile脚本
用途和基本语法
11、如何实现多进程编程和多线程编程
高并发
待补充
12、结构体对齐
原理是字节对齐,方便计算机访问数据。联合体公用同一块内存,以占最大字节数数据类型为准。
待确认。
13、进程间的通信
socket套接字,如何使用。待补充
14、回调函数
函数指针的用法。