一. 静态库与动态库的区别
静态库的代码在编译过程中已经被载入可执行程序,故不依赖库文件,体积较大。有改动需要重新编译整个解决方案。
动态库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。有改动是只需要重新生成动态库,便于升级。
二. TCP和UDP的区别
TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。
TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。
TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。
三. 进程和线程的区别
在引入线程的操作系统中
定义:
进程是操作系统进行资源分配的基本单位。进程不是可执行的实体。
线程是独立运行的基本单位,因而也是独立调度和分派的基本单位。
关系:
一个进程可以包含多个线程,但至少包含一个线程。
调度和切换:
线程上下文切换比进程上下文切换要快得多。
通信:
进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信。
四.指针和引用的区别
相同点:
二者都指向一块内存,都可以作函数形参。
不同点:
1.引用是一个变量的别名,与其指向的变量共享内存;
指针是一个存放地址的变量,有自己的内存空间。
2.引用在声明时必须初始化,且以后不能改变;
指针在运行时可以改变其所指向的值。
3.引用访问变量是直接访问,指针是间接访问;存在指针的指针,不存在引用的引用。
五.#include<>和#include""的区别
#include<>用来引用标准库头文件,编译器从标准库目录开始搜索。
#include""用来引用非标准库头文件,编译器用户工作目录(对VS来说是工程文件所在目录)开始搜索。