C++面试题目总结

1:进程与线程的区别?

答案:https://blog.csdn.net/chen134225/article/details/82967718

2:进程间的通信方式?

答案:https://blog.csdn.net/chen134225/article/details/82967718

3:线程间的通信方式?

答案:https://blog.csdn.net/chen134225/article/details/82967718

4:栈和堆的区别?

答案:https://blog.csdn.net/chen134225/article/details/81191501

5:C++和C的区别?

答案:https://blog.csdn.net/chen134225/article/details/82968064

6:红黑树和B树的区别?

答案:https://blog.csdn.net/chen134225/article/details/81116306

7:产生死锁的必要条件?已经如何预防死锁?

答案:https://blog.csdn.net/chen134225/article/details/82968198

8:TCP和UDP的区别?

答案:https://blog.csdn.net/chen134225/article/details/82968275

9:TCP状态中 time_wait 的作用?

答案:https://blog.csdn.net/chen134225/article/details/82968346

10:HTTP 2.0与HTTP 1.0的区别 ?

答案:https://blog.csdn.net/chen134225/article/details/79675103

11:HTTP与HTTPS的区别?

答案:https://blog.csdn.net/chen134225/article/details/79675247

12:TCP的三次握手和四次挥手的过程?

答案:https://blog.csdn.net/chen134225/article/details/82968511

13:事务具有四个特性?

答案:https://blog.csdn.net/chen134225/article/details/82968581

14:树的先序、中序和后序的非递归实现?

答案:https://blog.csdn.net/chen134225/article/details/82969139

15:树的层次遍历?

答案:https://blog.csdn.net/chen134225/article/details/82969139

16:static关键字的作用?

答案:https://blog.csdn.net/chen134225/article/details/82969468

17:const关键字的作用?

答案:https://blog.csdn.net/chen134225/article/details/82969468

18:指针和引用的区别?

  1. 指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;引用的底层是const指针,引用同样占据一块内存
  2. 引用不可以为空,当被创建的时候,必须初始化,而指针可以是空值,可以在任何时候被初始化。

https://blog.csdn.net/chen134225/article/details/79649392

19:哈希表处理冲突的方法?

答案:https://blog.csdn.net/chen134225/article/details/82969611

20:面向对象的三大特性?

继承、封装、多态

21:多态的实现?

22:深拷贝和浅拷贝的区别?

答案:https://blog.csdn.net/chen134225/article/details/82977035

23:vector的实现原理

答案:https://blog.csdn.net/chen134225/article/details/82977066

24:C++ 源代码到可执行代码的详细过程 ?

答案:https://blog.csdn.net/chen134225/article/details/80976228

25:memcpy和strcpy的区别 ?

答案:https://blog.csdn.net/chen134225/article/details/82977117

26:vector删除数据时有什么需要注意的吗 ?

答案:https://blog.csdn.net/chen134225/article/details/82977166

27:虚函数和纯虚函数的区别?

答案:https://blog.csdn.net/chen134225/article/details/82977219

28:C++中overload,override,overwrite的区别?

答案:https://blog.csdn.net/chen134225/article/details/81188476

29:C++中4中强制类型转换 ?

答案:https://blog.csdn.net/chen134225/article/details/81305049

30:有了malloc/free,为什么还要new/delete?

答案:https://blog.csdn.net/chen134225/article/details/82977700

31:map可以用结构体作为健值吗,已经注意事项?

答案:https://blog.csdn.net/chen134225/article/details/81674052

32:Volatile的作用?

答案:https://blog.csdn.net/chen134225/article/details/81709640

33:了解哪些c++11特性?

答案:https://blog.csdn.net/chen134225/article/details/80976666

34:右值引用和move语义?

答案:https://blog.csdn.net/chen134225/article/details/80976666

35:STL里resize和reserve的区别?

答案:https://blog.csdn.net/chen134225/article/details/81113843

36:vector和deque的区别?

答案:https://blog.csdn.net/chen134225/article/details/81744367

37:不同排序算法的比较?

答案:https://blog.csdn.net/chen134225/article/details/82978151

38:大端和小端的区别,以及如何判断一台机器是大端还是小端?

答案:https://blog.csdn.net/chen134225/article/details/81132025

39:malloc分配内存的原理?

答案:https://blog.csdn.net/chen134225/article/details/82978296

40:为什么构造函数不能声明为虚函数,析构函数可以,构造函数中为什么不能调用虚函数?

https://blog.csdn.net/chen134225/article/details/81564972

#面经##C++工程师##秋招#
全部评论
关于引用的问题看来有所争议,严谨起见,我还是实验了一下,C++代码如下: int main(){ int a = 1; scanf_s("%d", &a); int &ya = a; printf("%d %d\n", a, ya+1); system("pause"); return 0; } VS2015,DEBUG模式下生成了如下的汇编代码: int a = 1;  mov         dword ptr [a],1 scanf_s("%d", &a);  lea         eax,[a]    push        eax    push        offset string "%d" (01E6B30h)    call        _scanf_s (01E10F5h) scanf_s("%d", &a);  add         esp,8 int &ya = a;  lea         eax,[a]  mov         dword ptr [ya],eax printf("%d %d\n", a, ya+1);  mov         eax,dword ptr [ya]  mov         ecx,dword ptr [eax]  add         ecx,1  push        ecx  mov         edx,dword ptr [a]  push        edx  push        offset string "%d %d\n" (01E6B34h)  call        _printf (01E132Ah)  add         esp,0Ch 很明显看到, int &ya = a; 这一句下面的反汇编,意思是“把a的地址装进寄存器eax,再把eax寄存器的值放到ya所在的地址段”。 很明显说明了,ya有自己独立的地址空间,在试图打印ya+1的值的时候:  mov         eax,dword ptr [ya]  mov         ecx,dword ptr [eax] 这两行的意思是取ya地址段中的值(也就是&a,即a变量的地址)进寄存器eax,再将以“eax中的值作为地址”取四字节数字进ecx,两步合计相当于*(&a)。 另外对于RELEASE模式的代码,显然编译器聪明多了: printf("%d %d\n", a, ya+1);  mov         ecx,dword ptr [a]  lea         eax,[ecx+1]  push        eax  push        ecx  push        offset string "%d %d\n" (03B210Ch) 这里就很接近原文说的“引用是别名”之类的概念了。 当然这种级别的优化下,变量很可能一直生活在寄存器中,简单的函数调用也很容易被自动内联展开。此时再去讨论什么地址的问题有点本末倒置,因为连原始变量绝大多数时间都不在内存里了。
8 回复 分享
发布于 2018-10-09 13:40
而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。
点赞 回复 分享
发布于 2018-10-09 10:29
可以
点赞 回复 分享
发布于 2018-10-09 10:30
谢谢
点赞 回复 分享
发布于 2018-10-09 10:43
大佬,你面试是C/C++开发岗位?
点赞 回复 分享
发布于 2018-10-12 20:41
34:右值引用和move语义? 楼主,34这个链接错了是C++11新特性的链接
点赞 回复 分享
发布于 2019-08-20 12:34

相关推荐

秋国🐮🐴:拿到你简历编号然后让你知道世间险恶
点赞 评论 收藏
分享
2024-12-23 11:36
中南大学 Java
点赞 评论 收藏
分享
评论
20
404
分享

创作者周榜

更多
牛客网
牛客企业服务