没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式八股文篇(200页).docx
需积分: 0 96 下载量 74 浏览量
2023-06-18
09:46:23
上传
评论 28
收藏 15.89MB DOCX 举报
温馨提示


试读
213页
嵌入式八股文篇(200页).docx
资源推荐
资源详情
资源评论















1
目录
面试必备 ........................................................................................................................................11
运算符 ............................................................................................................................................11
()[].-> !~ ++ -- &* /%* +- << >>== >< &|^ &&|| ?: = += -= , ............11
一、关键字篇 ................................................................................................................................13
1. Continue .........................................................................................................................13
2. Break...............................................................................................................................13
3. Return .............................................................................................................................14
4. Goto ................................................................................................................................14
5. Volatile(编译优化阶段) ............................................................................................15
6.Struct(结构体) (C 和 C++区别,求结构体大小,使用的注意事项)..........................15
7.class 和 struct 的区别? .....................................................................................................16
8.Union(联合体) .....................................................................................................................16
2.联合体 union 和结构体 struct 的区别: ...................................................................16
3.联合体一般可以用来判断大小端问题:..................................................................16
4.大小端转换问题: .....................................................................................................17
5.计算占用空间大小问题:..........................................................................................18
9.Enum....................................................................................................................................19
10.Typedef ..............................................................................................................................19
1.#define 和 typedef 的区别 (宏,关键字,预处理,编译,检查) ..................19
注意#define 和 typedef 定义指针的区别 .....................................................................20
typedef int (*funtion)() //表示函数指针,重新命名为 funtion................................20
11.Const (C 中的变量:局部,函数形成,返回值,指针,typedef 的区别,数组大小
定义,case C++:常函数,常对象) .............................................................................20
12.Extern(链接阶段).........................................................................................................21
13.Register..............................................................................................................................22
14.Auto ...................................................................................................................................22
15.Static (c 语言:变量、函数 C++:类中变量、类中静态成员函数)......................22
1.定义变量 .....................................................................................................................22
2.定义函数 .....................................................................................................................25
3.定义类中的静态成员变量(不能在类里面初始化,不占类内存空间,必须定义才
能使用) ........................................................................................................................25
4.定义类中的静态成员函数(只能访问静态成员变量)................................................26
16.Swicth case ........................................................................................................................26
17.Do while.............................................................................................................................26
18.Sizeof .................................................................................................................................26
1.Sizeof()和 strlen()的区别.............................................................................................26
2.求指针大小 .................................................................................................................27
3.计算数组大小 .............................................................................................................27
4.如何不使用 sizeof 求数据类型字节的大小 ..............................................................27
#define mysizeof(value) (char*)(&value+1)-(char*)(&value) .........................................27
5.strlen(“ ”) = ? sizeof(“ ”);.........................................................................................27
6.sizeof(a++)....................................................................................................................28
7. 计算字符数组大小.................................................................................................28

2
8.sizeof(void)...................................................................................................................28
19.New/malloc delete/free(指明大小,返回值,初始化) ..................................................28
20.左值和右值是什么? .......................................................................................................28
21. 什么是短路求值 ....................................................................................................29
22.++a 和 a++区别 .................................................................................................................30
23.局部变量能不能和全局变量重名?................................................................................31
24. gets 和 scanf 函数的区别(空格,输入类型,返回值) ........................................32
25. C 语言编译过程中,volatile 关键字和 extern 关键字分别在哪个阶段起作用?32
26. Printf()函数的返回值 .............................................................................................32
27.C 语言中不能用来表示整常数的进制是二进制.............................................................33
28.char *str1 = “hello”和 char str2[] = “hello” .......................................................................33
二. 内存篇 ..................................................................................................................................34
1. 内存分配有几种方式:.................................................................................................34
2. 静态全局存储区 ....................................................................................................34
3. 堆上分配 ................................................................................................................34
2. 堆和栈有什么区别(申请方式、效率、方向).........................................................34
3.栈在 c 语言中有什么作用..................................................................................................35
4.c++的内存管理是怎样的....................................................................................................35
5.什么是内存泄漏 .................................................................................................................35
6.如何判断内存泄漏(如何减少内存泄漏) ...........................................................................35
7. 字节对齐问题 ................................................................................................................36
8.C 语言函数参数压栈顺序是怎样的 ..................................................................................36
9.C++如何处理返回值 ...........................................................................................................36
10.栈的空间值最大是多少 ...................................................................................................37
11. 在 1G 内存的计算机中能否 malloc(1.2G)?为什么?.........................................37
12.strcat、strncat、strcmp、strcpy 哪些函数会导致内存溢出?如何改进 .....................37
13.malloc、calloc、realloc 内存申请函数............................................................................37
14. 内存泄漏(补充).................................................................................................38
三、指针和数组 ............................................................................................................................39
难点在于:一、二维数组的初始化,数组名的加法和&数组名的加法,指针数组和数组
指针和一、二维数组的关系.................................................................................................39
1.什么是指针? .....................................................................................................................39
2.什么是指针的类型? .........................................................................................................39
3.什么是指针所指向类型 .....................................................................................................39
4.指针的值----或者叫指针所指向的内存区或地址.............................................................39
5.指针本身所占据的内存区 .................................................................................................39
8. 函数指针 ........................................................................................................................40
6.指针的运算 .........................................................................................................................40
7.认识这些指针运算指针的自加..........................................................................................41
9. 指针数组 ........................................................................................................................42
10. 数组指针和一维数组.............................................................................................43
11. 指针函数 ................................................................................................................43
12.指针和数组的区别?(类型、赋值、内存、字节大小、修改内容) ........................44
13.什么是野指针?如何产生?如何避免?........................................................................44

3
14.什么是智能指针 ...............................................................................................................45
15.智能指针的内存泄漏问题是如何解决的?....................................................................45
12. 数组名 num /&num 的区别...................................................................................45
13. 二级指针和指针引用.............................................................................................45
21.指针和数组的使用 ...........................................................................................................46
22.有了指针为什么还需要引用 ...........................................................................................46
23.使用指针的好处 ...............................................................................................................46
24.指针常量、常量指针、指向常量的常量指针................................................................46
25.指针和引用的异同,如何转换........................................................................................47
26.sizeof(数组名)和 sizeof(&数组) ........................................................................................48
27. 数组下标是负数的情况.........................................................................................48
28.二维数组 ...........................................................................................................................48
29.指针减指针 .......................................................................................................................49
30.数组作为参数传递 ...........................................................................................................49
31. 数组初始化 ............................................................................................................50
32. 调用 Free 释放内存后,指针还能用吗................................................................50
33. 函数指针 ................................................................................................................51
44. 指针不能加指针 ....................................................................................................51
45. 指针作为函数参数传递问题.................................................................................51
46.空指针的指向问题 ...........................................................................................................53
47.数组声明和引用的下标 ...................................................................................................54
48. 二维数组和数组指针.............................................................................................54
四、预处理 ....................................................................................................................................56
1.预处理器标识#error 的目的是什么? ..............................................................................56
2.头文件中#ifndef #define #endif..........................................................................................56
3.#define 和 const ..................................................................................................................56
4.typedef 和 define(原理、作用域,对指针操作不同) .................................................57
5.define 的一些坑(缺点): ..............................................................................................57
6.#include<头文件>,#include”头文件”的区别...................................................................57
7.定义一个常数,用以表明一年有多少秒(忽略闰年)..................................................58
8.简述 C++从代码到可执行二进制文件的过程...................................................................58
9.写一个标准宏 MIN, .........................................................................................................59
10.#define sqort(a) ((a)*(a)) ..................................................................................................59
11. 对指针的操作 ........................................................................................................59
12. 在头文件中是否可以定义静态变量.....................................................................60
13. #和##的作用 ..........................................................................................................60
14. 使用宏求结构体的内存偏移地址.........................................................................60
15. 枚举和 define 区别 ................................................................................................60
16. const 和 define 区别 ..............................................................................................61
17. typedef 和 define 区别...........................................................................................61
18. 宏函数和内联函数的区别.....................................................................................61
19. 如何判断一个整数是有符号还是无符号?.........................................................61
五、 函数 ......................................................................................................................................62
1.说说内联函数和宏函数的区别 (本质,效率,检查) .....................................................62

4
2.内联函数和普通函数的区别(寻址,复制)..................................................................62
3.为什么析构函数必须是虚函数?......................................................................................62
4.为什么 C++默认的析构函数不是虚函数...........................................................................65
5.静态函数和虚函数的区别? .............................................................................................65
6.重载和重写(覆盖)...............................................................................................................65
7.虚函数表具体怎么实现运行是多态?..............................................................................66
8.构造函数有几种,分别什么作用......................................................................................66
9.只定义析构函数,会自动生成哪些构造函数..................................................................68
10.说说一个类,默认会生成哪些函数................................................................................68
11.说说 C++ 类对象的初始化顺序,有多重继承情况下的顺序......................................69
12. select 函数..............................................................................................................69
13.Fork wait exec 函数.....................................................................................................72
14.select epoll poll 函数区别 ................................................................................................73
15.变参函数的实现 ...............................................................................................................74
16. 字符输入函数 ........................................................................................................74
17. fseek 函数...............................................................................................................74
18. 文件位置函数 ........................................................................................................74
19. 处理信号的函数 ....................................................................................................75
20. Scanf 函数...............................................................................................................75
21. printf()函数和 scanf()函数中的* ...........................................................................75
六、 面向对象 ..............................................................................................................................76
1.什么是面向对象 .................................................................................................................76
2.面向对象和面向过程的区别 .............................................................................................76
3.面想对象的三大特征 .........................................................................................................76
4.什么是深拷贝?什么是浅拷贝?......................................................................................78
5.什么是友元? .....................................................................................................................78
6.基类的构造函数和析构函数能不能被继承?.................................................................78
7.什么函数不能声明为虚函数 .............................................................................................78
8. vector 的底层实现 .........................................................................................................79
9. vector 和 list 的区别有什么 ..........................................................................................79
10. 说一说 vector 扩容时发生了什么 ........................................................................79
11. 删除元素导致两者迭代器发生什么变化.............................................................80
12. 如何理解迭代器 ....................................................................................................80
13. 容器的迭代器时由什么组成的.............................................................................80
14. 假如给你一个 class,让你去用 class 去实现一个智能指针,你会怎么做? ...80
15. STL 中迭代器有什么用?有指针为何还有迭代器...............................................80
16. STL 中迭代器是如何删除元素 ..............................................................................81
17. map 和 set 有什么区别?区别又是怎么实现的?..............................................81
18. STL 的 allocator 有什么作用..................................................................................81
19. STL 中的 MAP 数据如何存放的 ............................................................................82
20. STL 中的 map 和 unordered_map 有什么区别.....................................................82
21. STL 的 resize 和 reserver 的区别 ...........................................................................82
22. 为什么基类的构造函数和析构函数不能被继承.................................................82
23. C++中如何阻止一个类被实例化...........................................................................82

5
24. 纯虚函数指的是什么?.........................................................................................82
25. C++中哪些情况只能初始化列表,而不能赋值?...............................................83
26. 没有参数的函数能不能被重载?.........................................................................83
27. 虚函数表建立时间.................................................................................................84
七、 数据结构与算法 ..................................................................................................................84
数组篇 ....................................................................................................................................88
1.求两数之和: .............................................................................................................88
2. 三数之和 ................................................................................................................90
3.最小连续数组长度之和------>滑动窗口 ....................................................................92
4.最大子数组和 ............................................................................................................93
5.原地移除元素 .............................................................................................................95
6.【26】. 删除有序数组中的重复项.........................................................................97
7.合并两个有序数组 ....................................................................................................98
8.寻找数组的中心下标.................................................................................................99
9.有序数组的平方 ......................................................................................................100
1. 排序 ..............................................................................................................................102
1) 直接插入 ..............................................................................................................102
2)希尔排序----->直接插入的升级版.........................................................................103
1) 冒泡排序 ..............................................................................................................105
2) 快速排序 ..............................................................................................................107
1) 直接选择 ..............................................................................................................108
2)堆排序 ......................................................................................................................109
队列篇 ..................................................................................................................................114
1.顺序队列 ...................................................................................................................115
2.循环队列的相关计算 ...............................................................................................115
3.链式队列 ...................................................................................................................118
4. 双端队列 ..............................................................................................................119
链表 ......................................................................................................................................120
二叉树 ..................................................................................................................................121
查找 ......................................................................................................................................121
八、 操作系统 ............................................................................................................................122
1.什么是进程?什么是线程? ...........................................................................................122
2.进程、线程、协程的区别? ...........................................................................................122
3.何时使用多进程?何时使用多线程?(考虑优缺点) .....................................................123
4.创建进程的方式? ...........................................................................................................123
5.进程有几种状态? ...........................................................................................................123
6.进程间通信方式有哪些? ..............................................................................................124
7.进程间通信的选择 ...........................................................................................................125
8、什么是僵尸进程、孤儿进程、守护进程?.................................................................125
9.僵尸进程有什么危害? ...................................................................................................125
10.线程间通信方法有哪些? .............................................................................................125
11.说说线程,进程同步方式有哪些?..............................................................................126
剩余212页未读,继续阅读
资源评论


xxxxxxxxxxxxw_
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- sm2.js,前端加密算法,主要方法sm2EncryptPwd
- 人工智能-项目实践-jira-Python Jira library. Development chat
- Python俄罗斯方块Tetris源文件下载
- 基于Java 实现的LFU算法,特别适合新手,带有测试case
- 基于Java实现的LRU算法,特别适合新手,带有测试case
- 人工智能-项目实践-数据结构-冒泡排序、选择排序、快速排序、堆排序、插入排序、希尔排序、归并排序.zip
- 基于SpringBoot+Vue实现增删改查和分页查询DEMO(源码+数据库)作业
- C++ OnnxRuntime部署yolov8模型
- 人工智能-项目实践-数据结构-冒泡排序;直接插入排序;希尔排序;快速排序;堆排序;归并排序;基数排序.zip
- 人工智能-项目实践-数据结构-二叉树的层序遍历(左-右).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
