文章目录
一、堆和栈的区别
1.1 分配方式
栈(stack)/堆栈:由操作系统自动分配释放 ,用于存放函数的参数值、局部变量等,其操作方式类似于数据结构中的栈。
堆(heap):由程序员分配释放, 若程序员不释放,程序结束时由操作系统回收,分配方式类似于链表。
二、C/C++内存布局
三、指针常量与常量指针
四、大小端
五、extern 、const、static
六、宏定义函数与普通函数的区别
七、结构体内存对齐
7.1 不同位计算机的数据字节
32位编译器:
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
【long: 4个字节】
long long: 8个字节
unsigned long: 4个字节
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
[long: 8个字节]
long long: 8个字节
unsigned long: 8个字节
8.前缀,后缀,中缀
9.逻辑/算术左/右移
没有逻辑左移
https://blog.csdn.net/qq_37065641/article/details/80296322
10.UML与设计模式
11.TCP、IP
什么是TCP/IP协议?
理解TCP/IP三次握手与四次挥手的正确姿势
RTT(往返时间)和RPC
12.算法
12.1LCS
https://blog.csdn.net/qq_40086556/article/details/81635898
https://blog.csdn.net/u010648580/article/details/78025923