【小米】C++岗-面试复盘(70min+)
- 面试官先介绍了下部门情况,问我意愿。那么继续面试。
- 自我介绍
- socket使用过程
- 访问
www.baidu.com
的过程 - 内网地址和外网地址是怎么转换的。
- 网关是做什么用的,(我不太清楚,扯到
arp
协议上了) - 服务端处理客户端的请求是并行还是串行
- http的keepalive和TC的keepalive
- C处理程序的过程
- 使用define实现一个max函数
- define和内联函数的区别
- 内存对齐
- 代码1例子,不长记性的题
“`C++
struct a{
<pre><code>char a;
int b;
short c;
</code></pre>
};
求sizeof(a),
<pre><code class="line-numbers">1. 代码二,说出下段代码的错误
“`C
char* get_buffer(int size)
{
char a[size];
return a;
}
- 代码三,实现
int get_buffer(int size,void *src)
,即分配内存的函数 -
代码四,解释下列输出时,指针过程
9.1
char* a = {1,2,3,4,5,6,7};
int* ptr = a;
printf("%d",*ptr++);
9.2
char* a = {1,2,3,4,5,6,7};
int* ptr+=3;
printf("%d",*ptr++);
9.3
char* a = {1,2,3,4,5,6,7};
short* ptr = a;
printf("%d",*ptr++);
- 虚函数实现原理,子类如果也声明了虚函数,那么虚函数表应该是什么样
- 虚函数时被“初始化”为0的函数是什么函数(纯虚函数)
- 有的析构函数为什么设置为虚函数
- 什么情况下析构函数不需要设置为虚函数
- 多态介绍下,静态多态和动态多态
- 纯虚类的作用。
- STL中的容器介绍下
- 红黑树了解吗,介绍下,他的应用有哪些
- 如果一个文件中统计关键字个数,应该使用那种数据结构。
- 进程上下文说一下
- 虚拟内存说一下
-
内存和物理存储映射关系由谁决定
-
进程在内存的分布大概为几块
- 进程间通信方式,简单介绍下,
- 有名管道如何使用
- 信号量如何在不同进程间通信的。
- 进程间同步的方式
- 进程和线程的区别
- 线程的资源由谁进行释放
- 你觉得你有什么优势
- 你为什么喜欢技术这个方向(大致这个意思,面试官说最后一个问题的时候,我已经不行了。。)
- 平时遇到问题怎么解决的
面完信心十足,
现在复盘完后心里拔凉拔凉的。