嵌入式面经大全(8/30)--C/C++常见面试题(三)

牛客高级系列专栏:





简介

本人2020年本硕毕业于广东工业大学:嵌入式许乔丹,牛客高级专栏作者,牛客大学讲师,本科阶段搞了4年单片机、曾参加全国大学生恩智浦汽车竞赛,发表4个硬件专利。研究生阶段找了嵌入式linux的实习,毕业后拿到珠海格力,云从科技,CVTE,小米,美的,华为的嵌入式offer,签约CVTE嵌入式岗位。

在CVTE先后做过嵌入式Linux开发和安卓系统开发,参与过TV板卡、显示屏板卡、智能家居板卡、希沃网课学习机的开发。欢迎交流嵌入式或者安卓哈!

正文开始⬇️

第二章 C/C++高频面试题 (本文讲2.1.11-2.1.15)

2.1 c和c++区别、概念相关面试题

2.1.1 new和malloc的区别⭐⭐⭐⭐⭐

2.1.2 malloc的底层实现⭐⭐⭐⭐

2.1.3在1G内存的计算机中能否malloc(1.2G)?为什么?⭐⭐

2.1.4指针与引用的相同和区别;如何相互转换?⭐⭐⭐⭐⭐

2.1.5 C语言检索内存情况 内存分配的方式⭐⭐⭐

2.1.6  extern”C” 的作用⭐⭐⭐

2.1.7 extern容易忽略的知识点⭐⭐⭐⭐

2.1.8函数参数压栈顺序,即关于__stdcall和__cdecl调用方式的理解⭐⭐⭐

2.1.9重写memcpy()函数需要注意哪些问题⭐⭐

2.1.10数组到底存放在哪里⭐⭐⭐

2.1.11  struct和class的区别 ⭐⭐⭐⭐⭐

2.1.12 char和int之间的转换;⭐⭐⭐

2.1.13  static的用法(定义和用途)⭐⭐⭐⭐⭐

2.1.14  cosnt的用法(定义和用途)⭐⭐⭐⭐⭐

2.1.15const常量和#define的区别(编译阶段、安全性、内存占用等) ⭐⭐⭐⭐

2.1.16  volatile作用和用法 ⭐⭐⭐⭐⭐

2.1.17有常量指针 指针常量 常量引用 没有 引用常量⭐⭐⭐

2.1.18没有指向引用的指针,因为引用是没有地址的,但是有指针的引用⭐⭐⭐

2.1.19c/c++中变量的作用域⭐⭐⭐⭐⭐

2.1.20 c++中类型转换机制?各适用什么环境?dynamic_cast转换失败时,会出现什么情况?⭐⭐⭐

2.2 继承、多态相关面试题 ⭐⭐⭐⭐⭐

2.2.1继承和虚继承 ⭐⭐⭐⭐⭐

2.2.2多态的类,内存布局是怎么样的 ⭐⭐⭐⭐⭐

2.2.3被隐藏的基类函数如何调用或者子类调用父类的同名函数和父类成员变量 ⭐⭐⭐⭐⭐

2.2.4多态实现的三个条件、实现的原理 ⭐⭐⭐⭐⭐

2.2.5对拷贝构造函数 深浅拷贝 的理解 拷贝构造函数作用及用途?什么时候需要自定义拷贝构造函数?⭐⭐⭐

2.2.6析构函数可以抛出异常吗?为什么不能抛出异常?除了资源泄露,还有其他需考虑的因素吗?⭐⭐⭐

2.2.7什么情况下会调用拷贝构造函数(三种情况)⭐⭐⭐

2.2.8析构函数一般写成虚函数的原因⭐⭐⭐⭐⭐

2.2.9构造函数为什么

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式/C++面试题解析大全 文章被收录于专栏

#承诺提供免费技术答疑# 该专栏是我校招阶段整理的关于“嵌入式面经”的111道题目,“C/C++软件开发岗位”也可以参考下。涵盖了大多数嵌入式/软件开发岗位常见基础面试题,题目来源是牛客网各大大厂的面经,答案是我逐个查阅资料,是嵌入式面试最常见的题目和答案。订阅即赠送简历模板、超大笔试面试真题大礼包、内推机会,需要的同学点击我头像私信即可!

全部评论
我不认同上面两位的观点,我认为是物超所值的(狗头)
3 回复 分享
发布于 2020-09-01 21:15
“用const float MAX = 255;定义的常量编译时会进行类型检查)名字,存放在内存的静态区域中,在确定其值。在程序运行过程中const变量只有,而#define所定义的宏变量却有多个拷贝,所以宏定义在程序运行过程中所消耗的要比const变量的大得多;” 读读这通顺吗?
1 回复 分享
发布于 2024-07-25 17:41 上海
请问一下static局部变量到底存放在哪里?我找到一些不一样的说法。 1.https://www.cnblogs.com/dsdr/p/6083533.html 2.https://bbs.csdn.net/topics/300158944
1 回复 分享
发布于 2020-09-25 13:29
是我语文没学好吗 感觉很多句子读不懂呢
点赞 回复 分享
发布于 2024-08-25 15:26 江苏
“static局部变量:局部变量为动态存储,即指令执行到定义处才分配内存,将一个变量声明为函数的局部变量,使其变为静态存储方式(静态数据区),那么这个局部变量在函数执行完成之后不会被释放,而是继续保留在内存中” 这里说错了吧,静态局部变量也是在编译时分配的内存,静态局部变量处于数据段,这也是此变量在函数执行完的时候不会被释放的原因(普通局部变量位于栈中,函数调用结束后,函数的栈帧被销毁,所以就自动的被释放了)
点赞 回复 分享
发布于 2024-07-25 17:21 上海
const作用:①、可用const定义常量,使其具有不可变性,增加程序的健硕性。ps定义常量有2种方法,一是用define,例如#define LENGTH 100,二是用const,例如const int LENGTH 100;②、在函数声明中,可用const修饰形参,表明其为一个输入参数,函数内部不可改变其值;③、const可以用来代替define,例如用const double PI=3.1414926 代替#define PI 3.1415926,因为const有数据类型,可以进行数据安全检查,而#define只是简单的替换,此外const替换define的另一个优点是可以减少不必要的内存分配,因为define是在预编译阶段处理的,预编译阶段会把define定义的变量全部替换为后面的参数值,因此define定义的常量在内存有多分拷贝,而const是在编译阶段处理的,只有一个内存拷贝
点赞 回复 分享
发布于 2021-11-04 21:42
static作用:①、函数内,声明为static类型的变量在函数调用过程中,其值具有可继承性;②、函数外文件内,声明为static类型的变量可被文件内其他函数类型调用,不能被文件外其他函数调用;③、文件内,声明为static类型的函数可悲文件内其他函数调用,但不能被文件外其他函数调用。总之,如果一个全局变量和函数声明为了static类型,那么其他文件不能用extern
点赞 回复 分享
发布于 2021-11-04 21:34
你好,我认为char在标准中是unsigned(因为char类型提出的初衷是用来表示ascii码,ascii码的范围是0~127),但实际情况中究竟是signed还是unsigned取决于编译器
点赞 回复 分享
发布于 2021-08-13 20:07
总结的很好,const指针要是在讲的具体些就更好了
点赞 回复 分享
发布于 2021-06-09 18:05
define可以定义“宏函数”,const据我所知是不能定义“const函数”的,不过const可以用来修饰函数的形参或者函数的返回值。
点赞 回复 分享
发布于 2020-09-22 15:33
3)用define可以定义一些简单的函数(宏替换只作替换,不做计算,不做表达式求解),const是不可以定义函数的. 这里的const是不可以定义函数的是否存在问题?
点赞 回复 分享
发布于 2020-09-22 15:29
知识点很完善,解析也非常详细,精辟。确实很有帮助,一份外卖的价格还是非常物有所值的。
点赞 回复 分享
发布于 2020-07-21 10:36
知识点很完善,解析也非常详细,精辟。确实很有帮助,一份外卖的价格还是非常物有所值的。
点赞 回复 分享
发布于 2020-07-11 22:34

相关推荐

10-22 19:44
门头沟学院 Java
面了100年面试不知...:那我得去剪个头
点赞 评论 收藏
分享
评论
23
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务