开发者社区> 问答> 正文

C char数组初始化

我不确定初始化后通过以下方式在char数组中会有什么。

  1. char buf[10] = "";
  2. char buf[10] = " "; 3。char buf[10] = "a";

对于情况2,我认为buf[0]应该是' ',buf[1]应该是'\0',并且从buf[2]到buf[9]将是随机内容。对于情况3,我认为buf[0]应该是'a',buf[1]应该是'\ 0',并且从buf[2]到buf[9]将是随机内容。

那是对的吗?

对于情况1,将发生什么buf?buf[0] == '\0'而从buf[1]到buf[9]将会是随机内容? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 11:03:45 409 0
1 条回答
写回答
取消 提交回答
  • 这不是初始化数组的方式,但适用于:

    第一个声明:

    char buf[10] = ""; 相当于

    char buf[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 第二条声明:

    char buf[10] = " "; 相当于

    char buf[10] = {' ', 0, 0, 0, 0, 0, 0, 0, 0, 0}; 第三个声明:

    char buf[10] = "a"; 相当于

    char buf[10] = {'a', 0, 0, 0, 0, 0, 0, 0, 0, 0}; 如您所见,没有随机内容:如果初始化程序较少,则使用初始化数组的其余部分0。即使在函数内部声明了数组,也是如此。

    2020-02-08 11:03:59
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载