《C和C常见面试题》PPT课件

《C和C常见面试题》PPT课件

ID:41109563

大小:300.13 KB

页数:54页

时间:2019-08-16

《C和C常见面试题》PPT课件_第1页
《C和C常见面试题》PPT课件_第2页
《C和C常见面试题》PPT课件_第3页
《C和C常见面试题》PPT课件_第4页
《C和C常见面试题》PPT课件_第5页
资源描述:

《《C和C常见面试题》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C/C++结构与联合有和区别?struct和union都是由多个不同的数据类型成员组成,但在任何同一时刻, union中只存放了一个被选中的成员,而struct的所有成员都存在。在struct中,各成员都占有自己的内存空间,它们是同时存在的。一个struct变量的总长度等于所有成员长度之和。在Union中,所有成员不能同时占用它的内存空间,它们不能同时存在。Union变量的长度等于最长的成员的长度。对于union的不同成员赋值,将会对其它成员重写,原来成员的值就不存在了,而对于struct的不同成员赋值是互不影响的。结构体是多个数据的集合,可以保存多个数据;而联合union只保存一个

2、数据,但是可以按照不同类型来读取。比如你的联合里面有一个int和一个float,你第一次写进int,然后第二次写进float,那么int就不可用了(或者说读出来已经不是你存的int值了),因为这个union所在的内存区域值已经是第二次写进的float了。面向对象的三个基本特征,并简单叙述之?继承:继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和

3、实例变量,并它允许程序员在保持原有类特性的基础上进行扩展,增加功能,使之更适合特殊的需要。封装:封装(Encapsulation)是面向对象程序设计最基本的特性,把数据(属性)和函数(方法)合成一个整体,对数据的访问只能通过公有的接口访问,封装的对象,这些对象通过一个受保护的接口访问其他对象。多态性:多态性(polymorphism)多态性是指允许不同类的对象对同一消息作出响应。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题,函数的重载,运算符的重载,属于多态性中的编译时的多态性,虚函数属于运行时多态。ISO的七层模型是什么?tcp/udp是属于

4、哪一层?tcp/udp有何优缺点?应用层 表示层 会话层 传输层 网络层 物理链路层 物理层TCP/UDP属于传输层TCP是面向连接的可靠字节流UDP是无连接的不可靠报文传递TCP服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。与TCP不同,UDP并不提供对IP协议的可靠机制、流控制以及错误恢复功能等。由于UDP比较简单,UDP头包含很少的字节,比TCP负载消耗少。TCP:提供稳定的传输服务,有流量控制,缺点是包头大,冗余性不好,开销大,实时性较差。UDP:包头小,开销小,占用资源少,实时性较好,缺点是不可靠。请解释“func”为何种类型,这种类型的作用什么,变

5、量ttt的值是多少?typedefint(*func)(int,int*);intxxx(inta,int*p){returna+*p;}intdowork(funcaaa,intbbb,int*ccc){returnaaa(bbb,ccc);}intsss=4;intttt=dowork(&xxx,3,&sss);func表示一个函数指针,它指向参数为int,int*,返回值为int的函数。ttt的值为7请解释下面代码采用了何种C++特性(C语言不具备),作用是什么?templateTsum(Ta,Tb){return(a+b);}表示函数模板,用于将一类功能

6、相同,参数类型和返回值不同的函数抽象为一个模板,方便模板函数调用。newdelete和mallocfree的区别与联系?malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都用于在堆(heap)上进行动态的内存操作(申请动态内存和释放内存)。delete不仅会释放空间,在释放前会调用析构函数,和new对应,new调用构造函数,free只会释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不

7、在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。C++程序经常要调用C函数,其实new/delete内部实现也调用了malloc/free。而C程序只能用malloc/free管理动态内存new是强制类型的,不需要考虑类型,而malloc不是,它返回的指针是vo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。