嵌入式八股2C/C++

本来想写20条,发现自己太啰嗦,14条就提示超过文字上限了,我得精简一点
15.什么是内存对齐(也叫字节对齐,cpu取内存时是按block,实际长度是跟字长有关,编译器会对结构体大小按内存对齐优化,可以用#pragma pack()设置)
16.++i和i++的区别(从汇编看,++i是直接自增,相当于一条指令,i++需要临时变量存i,再i自增,所以++i性能比i++好。但现代编译器会自动优化,一般不会有性能差)
17.什么是堆栈溢出,内存越界(数组超长或者栈小,局部变量数组过大)
18.怎么理解数组传参退化为指针(形参数组当指针用)
19.问号表达式,或运算符的截断性
20.指针传递,取地址传递,值传递的区别。

C++在嵌入式领域主要是应用开发,所以除了要理解C的八股,还需注意一些重点
1.面对象编程的特点和面向过程的区别(封装继承多态)
2.C++是怎么实现多态的(虚函数)
3.什么是虚函数(virtual关键字修饰,父类中的虚函数可以在子类中重写,这样父类指针指向子类对象并调用该函数实际调用的是子类方法从而实现多态)
3.虚函数如何实现多态(父类指针指向子类对象)
4.求类的大小(sizeof(class))(除了考虑成员变量大小和字节对齐,再就是,如果类中存在虚函数,那么会隐藏一个指针指向类的虚表。因此还多出一个虚表指针的大小。)
5.什么是虚表,虚表保存在哪里(如果类中有虚函数,就有一个虚表,保存函数接口,虚表编译时生成,保存在数据段,不占用类的空间)
6.什么是抽象类,抽象类可以创建对象吗(如果虚函数后面有=0的字段,即为纯虚函数。如果类中有纯虚函数,称为抽象类,抽象类不能实例化)
7..什么是菱形继承,怎么解决?
8.什么是函数重载,可以返回值不同吗(返回值和函数名必须相同,但参数类型和个数可以不同)
9.类成员public,protected,private的含义(public类外可以随意访问,protected子类能访问,private只有自己能访问,子类不能访问)
10.友元能互相访问私有成员吗(可以)
11.智能指针解决什么问题,原理(内存泄漏)
12.为什么有shared_ptr还要weak_ptr(循环引用)
13.空类大小(1字节,编译器分配用来占内存)
14.类中的static成员变量(不属于某一个对象,在全局区)
15.内联函数概念
全部评论

相关推荐

屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
评论
5
15
分享

创作者周榜

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