- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
调度和切换:线程上下文切换比进程上下文切换快速,高
调度和切换:线程上下文切换比进程上下文切换快速,高效。
4.多方法交换 x 与 y 的值
5.指针的自加与引用
6.前置++与后置++
前置++和后置++我觉得一个比较重要的问题是 C++中重载两个操作符的时候如何区别:区分前 置和后置 函数的参数有一个 (函数重载),后置++有一个(int)参数。
编译器,其声明的函数和变量在本模块或其他模块中使用(通常,在模块的头文件中对本模块提供
参考:其实 extern 的百度词条解释的很清楚,具体的也是跟我上面自己理解差别不是很大。
(a) extern 是 C/C++语言中声明函数和全局变量作用范围(可见性)的关键字,该关键字告诉 给其它模块引用的函数和全局变量以关键字 extern 声明。)
程)
地址空间和其他资源:进程间互相独立,同一个进程的各线程共享。
我觉得这个概念可能面试、笔试的时候不是很适合,毕竟平台相关,大多数公司可能更多的倾向于
(b) 被 extern “C”修饰的变量和函数是按照 C 语言的方式编译和链接的。(C 语言不支持函数 重载,所以函数的 C++和 C 的编译方式不同,这一句的作用就是实现 C++和 C 及其他语言混合编
2.strstr()函数的作用
摘选著名的互联网企业的面试笔试真题:
自己理解:应该需要区分 extern 在 C 语言中和 C++语言中的作用,C 语言中 extern 声明的函数 和变量可以被该文件外部模块引用,C++语言中除了该作用还可以声明 extern “C”声明一段代码 编译连接的方法为 C 语言的方法。
linux 开发,这个问题更换为进程和线程的区别更好,这个是笔试,面试常见的知识考查。
(a) 通常一个进程可以包含若干个线程,它们可以利用进程所拥有的资源。进程是系统进行资源 分配和调度的一个独立单位,线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程
更小的能独立运行的基本单位。线程自己基本不拥有系统资源,只拥有一些在运行中必不可少的资
1.extern 的作用
strstr()函数的原型一般为 extern char * strstr(const char *src , const char *dest) , 其作
3.windows 线程优先级问题( 进程和线程的区别和联系 )
用就是寻找目标字符串在源字符串中第一次出现的位置。
源(如程序计数器,一组寄存器和栈),线程可与同属于一个进程的其他线程共享进程所拥有的全
部资源。
线程和进程区别归纳:
?
?
?
?
通信:进程间通信 IPC,线程间可以直接读写进程序数据段(如全局变量)来进行通信 -需要进行同步和互斥的辅助。
多线程的 OS 中,进程不是一个可执行的实体。
同时,编译期间可以对参数进行强类型的检查,这是 inline 优于宏
同时,编译期间可以对参数进行强类型的检查,这是 inline 优于宏的一个方面。
堆栈由调用者清除
参数从右至左的顺序压入堆栈内
堆栈由被调用者清除
部分参数保存在寄存器中,然后其他的
12.重载函数
函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被 称为重载函数。不能利用返回类型进行重载!类中函数 const 和非 const 可以进行重载,其实原理 是利用 this 指针的类型是 const 和非 const 进行重载,其实原理就是参数类型不同,const 指针 orconst 引用调用的为 const 版本的函数~更多函数重载的知识。
13.构造函数和析构函数
函数,防止部分内存泄露。
虚拟析构函数的使用场景是指向父类的指针实则为子类指针,调用 delete 的时候使用虚拟析构
成的代码,所以在构造函数执行之前无法访问到虚拟函数表的。
构造函数不能声明为虚拟函数,因为对象的虚拟函数表的指针其实是在构造函数内编译器添加完
14.合并两个有序链表
类似归并排序,两个指针归并即可。
15.100 亿条记录的文本文件,取出重复数最多的前 10 条
类似 top k 算法,无法全部读入内存的 top k 算法是利用容量为 k 的最大堆,达到线性时间的 top k 算法。
8.二维数组的表示
9.ifndef 的作用
条件编译的语法,一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只
望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。
10.KMP 算法
字符串匹配的高级算法
11.函数调用方式
inline 函数不像正常函数在调用时存在压栈和 call 的操作,它会把程序代码直接嵌入到调用代码段 中,也就是说使用 inline 函数会增大二进制程序的体积,但是会使执行速度加快。
在满足
文档评论(0)