嵌入式笔试刷题(第44天)
第11题:sizeof 与 strlen 区别考察
#include <stdio.h> #include <string.h> int main() { char a[]="abcdef"; char *p="abcdef"; printf("%d,%d\n",sizeof(a),strlen(a)); printf("%d,%d\n",sizeof(p),strlen(p)); return 0; }
答案:7,6 和 4(或8),6
解析:
- char a[] = "abcdef";:数组包含 abcdef 和 \0,共 7 个字符。sizeof(a) = 7,strlen(a) = 6
- char *p = "abcdef";:指针大小为 4(32位)或 8(64位),不管字符串长度;sizeof(p) = 4 或 8(取决于平台),strlen(p) = 6(直到遇到 \0)
第12题:字符数组初始化大小考察
#include <stdio.h> int main() { char str[20] = "hello world"; printf("%d\n", sizeof(str)); return 0; }
答案:20
解析:
- 数组大小固定为
20
,不管字符串长度是多少; sizeof(str)
返回整个数组长度。
第13题:字符串指针数组的输
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
嵌入式笔试专栏 文章被收录于专栏
本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。