qq_43266835
神舟NO.10
2018-09-23 12:49
采纳率: 72.2%
浏览 1.4k
已采纳

关于C语言中一维数组初始化的问题

第一组代码:
#include
int main()
{
int i,a[10];

         for(i=0;i<10;i++)
        printf("第%d个数:%d\n",i+1,a[i]);
        return 0

}
书上说这个不行,需要将a[10]改成a[10]={*******},但下面一段代码行但我觉得与第一组是一样的
第二组代码:
#include
int main()
{
int i,a[10];

        for(i=0;i<10;i++)
            a[i]=i+1;
                for(i=0;i<15;i++)
                printf("第%d个数:%d\n",i+1,a[i]);
                return 0
}
为什么第二种代码中的a[10]不改成a[10]={*****}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • JonathanYan
    JonathanYan 2018-09-23 12:57
    已采纳

    第二组代码对a数组进行了初始化,第一组未初始化就进行了输出,容易输出乱码,一般都用花括号进行初始化,如果希望全部初始化为0可以写a[10] = { 0 },这代表所有元素都初始化为0

    点赞 评论
  • qq_39234705
    流泪熊猫头 2018-09-23 13:19

    第一组是因为未初始化出错,第二组是先定义,再赋初值,在printf之前完成了初始化。初始化有两种方式:定义时赋初值;先定义,后赋初值。

    点赞 评论
  • weixin_38721194
    1023号菜鸡 2018-10-02 13:39

    a[i]=i+1; 因为第二组有这句,所以对a数组赋值了

    点赞 评论

相关推荐