C语言输出不确定值为什么?

{int a[2]={0},i,j,k=2;
for(i=0;i<k;i++)
for(j=0;j<k;j++)a[j]=j[i]+1;
printf("%d\n",a[2]);
}
可以改得能运行吗?

你把a[j]=j[i]+1;改成a[j]=a[i]+1;
把printf("%d\n",a[2]);改成printf("%d\n",a[1]);就行了
越界了。你定义的int a[2];它的下标是从0开始的,即只有a[0],a[1],没有a[2],你最后的输出出错了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-28
int a[2]={0}

定义一维整形数组a,a大小是2,并给a[0]赋初始值0,a[1]并未赋值,如果查看a[1]的值,就是a指向的地址开始的第二个元素 *(a+1)的值。
第2个回答  2010-10-29
{int a[2]={0},i,j,k=2;
for(i=0;i<k;i++)
for(j=0;j<k;j++)a[j]=j[i]+1;//这行j[]是数组??不能这么定义,
printf("%d\n",a[2]);
}
//输出不确定之是因为没有赋值!!

int i;
printf("%d",i);
就会输出系统随机数;

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网