转自http://blog.chinaunix.net/uid-26750075-id-3226263.html
1.解释指针以及 const的组合,如:
- int * i; //i为指针,指向int类型
- int * const i;//int const *p和int *const的区别 前者指向的内容不可改变.后者指针不能再指向其它的东西了.
- const int * i;//i是指向常量的指针,指针指向一个常量,无需初始化,指针本身可以改变,但是指针指向的值不能改变。
- const int * const i;//i为指针指向常量,i指针也不能指向别的
- int const * const i;//同4
2.static的几种用法?
静态和隐藏
3.定义宏求两个数的最小值
#define MIN(x,y) ((x>y)?y:x)
4.画出函数调用栈
- long foo(int i, int j)
- {
- int a = 1;
- int b = 2;
- return i + j + a + b;
- }
- int main(int argc, char ** argv)
- {
- int i = 20;
- long l = foo(i, 30);
- exit(0);
- }
5.进程与线程的关系区别
调度/并发/拥有资源/开销/
6.Linux内存管理方式
7.TCP/IP协议分层;TCP、IP协议工作在那一层;解释TCP/UDP异同;TCP怎么保证可靠链接以及重传机制,怎么验证数据包丢失或错误
传输层 TCP
网络层 IP
TCP/UDP异同:面向连接/面向无连接;打电话/发短息
TCP:可靠的、基于字节流的通信协议、传输大量数据;确保传输数据的正确性、不出现丢失和乱序;对资源要求多
UDP:不连接、不对数据进行检查与修改,会出现分组丢失、重复、乱序;对资源要求较少;实时性好,效率比TCP高;段结构比TCP的段结构简单,所以开销也小
8.进程间通信有哪些方法
共享存储、消息、管道。
9.写出函数void *memcpy(void *dst, void * src, size_t len)
10.写处快速排序算法
11.有两个单链表A和B,已知单链表A和B会在某一个节点时汇合,即A和B中有一个节点next指针指向相同的地址,且往后节点完全相同;写一个算法,求出汇合点的指针,要求算法时间复杂度为O(n)