嵌入式笔试刷题(第52天)

11. assert 是什么,需要包含什么头文件?怎样禁用?

答案:

  • assert 是一个 宏
  • 头文件:#include <assert.h>
  • 禁用方式:在 #include <assert.h> 之前添加:

📌 说明:assert 在调试时用于检查表达式是否为真,若为假则终止程序,发布版本常禁用。

12. 面向对象的三个基本特征

答案:

  • 封装(Encapsulation)
  • 继承(Inheritance)
  • 多态(Polymorphism)

📌 说明: 是 OOP 的三大核心概念,分别对应数据保护、复用和行为灵活性。

13. 代码输出分析

int a[7] = {1,2,3,4,5,6,7};
int *ptr = (int *)(&a + 1);
printf("%d %d", *(a+1), *(ptr-1));

答案:2 7

📌 解释:

  • a+1 指向 a[1],值为 2;
  • &a 是整个数组地址,类型是 int (*)[7]
  • &a + 1 跨过整个数组,相当于指向 a[7] 的地址,即下一个 int;
  • (int *)(&a + 1) 强转为 int* 后回退一位:ptr-1 = &a[6],值为 7

14. 重定向符说明

1>

将标准输出(stdout)重定向到文件

2>

将标准错误输出(stderr)重定向到文件

2>&1

将标准错误输出重定向到标准输出

4<&0

将文件描述符 4 重定向为标准输入(fd 0)

cat file1 file2 > file3

合并两个文件内容输出到 file3(覆盖)

cat file

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

嵌入式笔试专栏 文章被收录于专栏

本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。

全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务