嵌入式大厂面经第 7(持续更新中!)
这是一个嵌入式大厂面试题专栏,每天更新高频面试题。专栏将包含题目描述、详细解析、相关知识点扩展以及实际代码示例。内容涵盖操作系统、驱动开发、通信协议等核心领域,并结合实际项目经验进行分析。每道题目都会附带面试官可能的追问方向,帮助大家更好地准备面试!
1. 指针常量和常量指针
常量指针(const pointer)
- 指向内容可以改变,但指针本身不能改变指向
int num1 = 10, num2 = 20; int* const ptr = &num1; // 指针常量 *ptr = 30; // 正确:可以修改指向的值 // ptr = &num2; // 错误:不能修改指针指向
指针常量(pointer to const)
- 指针可以改变指向,但不能通过指针修改指向的内容
int num1 = 10, num2 = 20; const int* ptr = &num1; // 指向常量的指针 ptr = &num2; // 正确:可以改变指向 // *ptr = 30; // 错误:不能修改指向的值
2. 栈和堆的区别
栈(Stack)
- 特点系统自动管理空间较小存取速度快连续的内存空间
- 使用场景
void stackExample(void) { int array[5]; // 栈上分配 char str[10]; // 栈上分配 struct Point p = {1,2}; // 栈上分配 } // 函数结束自动释放
堆(Heap)
- 特点手动管理空间较大存取速度相对较慢不连续的内存空间
- 使用场景
void heapExample(void) { int* array = (int*)malloc(5 * sizeof(int)); // 堆上分配 char* str =
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式面试八股文全集 文章被收录于专栏
这是一个全面的嵌入式面试专栏。主要内容将包括:操作系统(进程管理、内存管理、文件系统等)、嵌入式系统(启动流程、驱动开发、中断管理等)、网络通信(TCP/IP协议栈、Socket编程等)、开发工具(交叉编译、调试工具等)以及实际项目经验分享。专栏将采用理论结合实践的方式,每个知识点都会附带相关的面试真题和答案解析。