嵌入式笔试刷题(第65天)
1. static 有什么用途?至少说明两种
答案:
- 限制变量作用域:用于局部变量时,使变量具有静态存储周期,即只初始化一次,但作用域仍限于函数内部。
- 限制函数可见性:用于函数或全局变量时,使其只在当前文件内可见,防止外部文件访问。
2. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
答案:有区别:
- 全局变量:存放在数据段(.data 或 .bss),在程序整个生命周期内存在。
- 局部变量:存放在**栈(stack)**中,随着函数的调用创建,退出后销毁。
3. 头文件中的 #ifndef/#define/#endif
是干什么用的?
答案:用于防止头文件被重复包含(多次包含同一头文件会导致重复定义错误)。
4. sizeof 计算题(32位系统)
char str[] = "http://www.ibegroup.com/"; char *p = str; int n = 10;
- (1)
sizeof(str)
= 27(包括结尾的 '\0') - (2)
sizeof(p)
= 4(指针大小) - (3)
sizeof(n)
= 4 - (4)
sizeof(str)
invoid Foo(char str[100])
= 4(退化为指针) - (5)
void *p = malloc(100); sizeof(p)
= 4
5. 表达式:
int i=10, j=10, k=3; k *= i + j;
答案:k = 3 × (10 + 10) = 60
6. 程序输出分析
void get_memory(char **p, int num){ *p
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。