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日

悬赏问题

  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 使用Java milo连接Kepserver服务端报错?
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了
  • ¥15 微信小程序商城如何实现多商户收款 平台分润抽成