1613551 发表于 2022-7-17 09:55:52

关于strlen和sizeof的问题

为什么第一个printf调用sizeof后的结果是6啊,不应该是6个字符加上一个\0,然后结果是7吗?然后strlen的结果也是5

#include <stdio.h>
#include <string.h>
int main(void)
{
      printf("%d\n", sizeof("\\\abc\376"));
      printf("%d\n", strlen("\\\abc\376"));
      return 0;
}

临时号 发表于 2022-7-17 09:55:53

本帖最后由 临时号 于 2022-7-17 11:40 编辑

\\是一个转义字符,表示打印\,占1个字节
\a也是一个转义字符,表示响铃,占1个字节
bc占2个字节
\376也是转义字符,表示八进制数376,占一个字节
\0占一个字节
所以总共加起来一共6个字节
页: [1]
查看完整版本: 关于strlen和sizeof的问题