嵌入式笔试刷题(第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 内核、以及实用电路知识等内容。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务