m0_66394588 2022-02-22 22:11 采纳率: 91.5%
浏览 13
已结题

为什么打印出来的第一行不是8而是16呢?

#include <stdio.h>
#include <string.h>

int main()
{
        char str[] = "Welcome to CSDN";

        str[7] = '\0';

        printf("sizeof str = %d\n", sizeof(str));
        printf("strlen str = %d\n", strlen(str));

        return 0;
}

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-02-22 22:19
    关注

    str是一个字符数组,其类型是char [16]sizeof一个数组返回的是数组所占的内存大小(字节数)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月22日
  • 创建了问题 2月22日