【面试】C/C++面试题-创新互联

1 malloc free, new delete的区别?

(1)new/delete是C++的操作符,而malloc/free是C中的函数。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册雅安服务器托管、营销软件、网站建设、郑州网站维护、网站推广。

(2)new做两件事,一是分配内存,二是调用类的构造函数;同样,delete会调用类的析构函数和释放内存。而malloc和free只是分配和释放内存。

(3)new/delete是保留字,不需要头文件支持;malloc/free需要头文件库函数支持。在C语言中使用malloc和free需要加入stdlib.h头文件。

(4)new、delete 返回的是某种数据类型指针,malloc、free 返回的是 void 指针。等等。

2 指针和引用的区别?

指针是⼀个实体,引⽤只是⼀个别名。

引⽤必须⽽且只能在定义时被绑定到⼀块内存上,后续不能更改,也不能为空 。

sizeof引⽤得到代表对象的⼤⼩。⽽ sizeof 指针得到的是指针本身的⼤⼩。

可以有const指针,但是没有const引用。

指针可以有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合法的)。

指针和引用的自增(++)运算意义不一样。

3 sizeof

sizeof的作用 Sizeof是C/C++中的关键字,它是一个运算符,其作用是取得一个对象(数据类型或数据对象)的长度(即占用内存的大小,以byte为单位)。其中类型包括基本数据类型(不包括void)。

4 野指针的问题

野指针”产生原因及解决办法如下:

(1) 指针变量声明时没有被初始化。解决办法:指针声明时初始化,可以是具体的地址值,也可让它指向 NULL。

(2) 指针 p 被 free 或者 delete 之后,没有置为 NULL。解决办法:指针指向的内存空间被释放后指针应该指向 NULL。

注意:“野指针”的解决方法也是编程规范的基本原则,平时使用指针时一定要避免产生“野指针”,在使用指针前一定要检验指针的合法性。

5 深拷贝和浅拷贝的区别?

浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。

深拷贝会创造一个一摸一样的对象,新对象和原对象不共享内存,修改新对象不会改变原对象。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

本文题目:【面试】C/C++面试题-创新互联
文章链接:https://www.cdcxhl.com/article12/ddgigc.html

成都网站建设公司_创新互联,为您提供品牌网站建设网站改版关键词优化网页设计公司手机网站建设定制网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管