但愿不会被抛弃 发表于 2019-2-5 18:11:18

关于数组的输出形式

#include<stdio.h>
void main()
{   
      int i;
      int a={1,1};
      for(i=2;i<20;i++)
      {
                a=a+a;
      }
      printf("%d\n",a);
}

//为什么输出结果不是a【0】到a【19】?并且搞不懂输出结果20是哪里来的?我调试了一下为什么每次编译完一个a【i】的值就显示a【20】为刚刚编译的值?

ba21 发表于 2019-2-5 18:36:45

你跟着流程走啊。动动手
                a=a+a;

                循环1 a=a + a;
                循环2 a=a + a;
                循环3 a=a + a;

但愿不会被抛弃 发表于 2019-2-5 19:08:12

ba21 发表于 2019-2-5 18:36
你跟着流程走啊。动动手
                a=a+a;



对啊,求出a【2】然后再按一下f10就显示a【20】为刚刚求出来a【2】的值。
这里我就不懂了,明明就是a【2】的值

ba21 发表于 2019-2-5 19:23:39

但愿不会被抛弃 发表于 2019-2-5 19:08
对啊,求出a【2】然后再按一下f10就显示a【20】为刚刚求出来a【2】的值。
这里我就不懂了,明明就是a【2 ...

printf("%d\n",a); // 这里是a 这时i已经等于20了好吧

a 越界,不管是什么值 不重要,你知道越界就行了。

页: [1]
查看完整版本: 关于数组的输出形式