main(){ int i,a[10]; for(i=0;i<=9;i++) a[i]=i; for(i=9;i>=0;i--) printf("%d ",a[i]);} 请问一下,最后输的a[i]中的i是第一个for中的i还是第二个for中的ia啊?第二个for中不是会出现i = -1的情况�

展开全部
收起
3回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 闲云

    17人对此回答表示赞同

    是第二个for中的ia啊第二个for中会出现i = -1的情况,但只在后台程序执行 输出还只是到a[0]停止第三个情况,我也不清楚。
    展开
    17
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • clock8

    16人对此回答表示赞同

    输出的肯定是第二个for中的a[i]值不会出现i = -1的情况,你的i >= 0 已经给予了限制不是-36啊,如果没有第二个for,输出的值必然是9你检查下其他地方是不是给a[i]做过其他运算?
    展开
    16
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 荣光不复

    1人对此回答表示赞同

    i在整个main函数,只有这一个变量,无论是第一个for还是第二个for,都是用的同一个i第二个for会出现i=-1的情况,在i= -1的情况下,并不能执行 printf("%d ",a[i]);语句。所以不用害怕!没有第二个for的情况时:在第一个for执行完毕后,i已经变成10了,但是你的数组大小为10,i为10的话,指向的是你数组第11个的位置,你的下标越界了,越界的后果会导致你的程序崩溃,但是现在没有崩溃,输出的肯定是乱码,-36只是个表面现象,其实,a[10]是个不确定的数
    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部