c/c++常见面试题一
找工作这么多天了,贴一下常见基础题吧,谁找工作了还可以复习下。答案有的是缺少很多,想看全百度之谷歌之... 1.进程与线程的区别: 很长重点写了:一个程序必须有一个进程,一个进程要有一个线程。 进程在运行时有独立的内存单元,而线程则是共享内存单元,所以一个线程死掉这个进程就会死掉,但是一个进程死掉程序无所谓。所以多进程程序比多线程要 稳定。 2.c++函数传递参数的方式: 1.直接传递、引用、指针。 他们的优缺点: 1.按值传递,在传递的时候实参被复制了一份,然后在函数体内使用。如果修改函数体内的拷贝,而实参是没有改变的。 2.引用是别名,所以效率别指针快,也比指针安全。(优先使用引用而不使用指针) 3.按值传递和引用传递在传参过程中,都执行强类型检查,而指针传递的类型比较弱,如果参数被声明为void*基本上没有类型检查,只要是指针编译器就认为是合法的,所以这会造成BUG。 4.指针可以干引用的活,而且还可以传递空指针,特别函数特别应用。但是指针用起来本身就很麻烦,如非需要还是不用。 *3.什么是深拷贝和浅拷贝 深拷贝:拷贝了对象的资源,在新对象中又建立了一个新的字段把资源放进去,如果修改其一,另一个不会改变。 浅拷贝:没有拷贝对象资源,它们共享资源,如果改变其一另一个也会随之改变。 4.面向对象的三个基本特征 1)封装