【C/C++笔面试大全】——持续更新...............

文章目录

  • 一、堆和栈的区别
    • 1.1 分配方式
  • 二、C/C++内存布局
  • 三、指针常量与常量指针
  • 四、大小端
  • 五、extern 、const、static
  • 六、宏定义函数与普通函数的区别
  • 七、结构体内存对齐
    • 7.1 不同位计算机的数据字节
  • 8.前缀,后缀,中缀
  • 9.逻辑/算术左/右移
  • 10.UML与设计模式
  • 11.TCP、IP
  • 12.算法
    • 12.1LCS
    • 12.2LRU
    • 12.3动态规划
    • 12.4贪心算法

一、堆和栈的区别

1.1 分配方式

栈(stack)/堆栈:由操作系统自动分配释放 ,用于存放函数的参数值、局部变量等,其操作方式类似于数据结构中的栈。
堆(heap):由程序员分配释放, 若程序员不释放,程序结束时由操作系统回收,分配方式类似于链表。

二、C/C++内存布局

三、指针常量与常量指针

四、大小端

五、extern 、const、static

六、宏定义函数与普通函数的区别

七、结构体内存对齐

7.1 不同位计算机的数据字节

32位编译器:

  char1个字节
  char*(即指针变量): 4个字节(32位的寻址空间是2^32,32个bit,也就是4个字节。同理64位编译器)
  short int : 2个字节
  int4个字节
  unsigned int : 4个字节
  float:  4个字节
  double:   8个字节
  【long:   4个字节】
  long long:  8个字节
  unsigned long:  4个字节

64位编译器:

  char1个字节
  char*(即指针变量): 8个字节
  short int : 2个字节
  int4个字节
  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

12.2LRU

12.3动态规划

12.4贪心算法

你可能感兴趣的:(面试)