Jack_0 发表于 2020-3-10 13:10:15

求帮看一下为什么这个debug进入for的循环语句之后i=-1已经在for语句中赋初值为9了

#include<stdio.h>
void main()
{
        int i,a={0,1,2,3,4};
        for(i=9;i>=0;i--);
        {
                printf("%d\n",a);
        }
}而且这个为什么就是这个输出老师说没赋初值默认是零我的程序运行之后怎么是-8555226的乱码

ba21 发表于 2020-3-10 13:15:43

for(i=9;i>=0;i--);

也不是所有编译器都会初始化为0。一般赋值部分其它的会初始化为0

qiuyouzhi 发表于 2020-3-10 13:25:47

把for循环的分号去掉

jackz007 发表于 2020-3-10 13:27:28

本帖最后由 jackz007 于 2020-3-10 13:28 编辑

       进入循环 i = 9 有什么不妥吗?循环本来就是朝着 i 的值从 9到 0 的方向走的呀!
       你一定没有把老师的话听全,你们老师讲的一定是,有些编译器会把没有赋值的变量初始化为 0 值,而你所使用的编译器显然不在这个范围内。

良弓无箭 发表于 2020-3-10 13:34:38

for循环后面不能带分号,如果带了分号,说明for语句已经写完。
#include<stdio.h>
void main()
{
      int i,a={0,1,2,3,4};
      for(i=9;i>=0;i--)
      {
                printf("%d\n",a);
      }
}
页: [1]
查看完整版本: 求帮看一下为什么这个debug进入for的循环语句之后i=-1已经在for语句中赋初值为9了