关于c语言数组输出的问题 5

main{inta[2]={0};nti,j,k=2;.for(i=0;i<k;i++)for(j=0;j<k;i++)a[j]=a[i]+1;printf("%d",a... main{

int a[2]={0};

nt i,j,k=2;

.for(i=0;i<k;i++)
for(j=0;j<k;i++)

a[j]=a[i]+1;

printf("%d",a[k]);
}
按照数组定义,int a[2]标明长度为了,包含两个元素:a[0]和a[1]。那a[k]即a[2]的输出值应该没有才对啊,为什么程序运行结果是2?
main{

int a[2]={0};

nt i,j,k=2;

.for(i=0;i<k;i++)
for(j=0;j<k;j++)

a[j]=a[i]+1;

printf("%d",a[k]);
}
展开
 我来答
百度网友13f88680b
2013-07-26 · TA获得超过404个赞
知道小有建树答主
回答量:365
采纳率:50%
帮助的人:198万
展开全部
a[k]的值是随机的。
怎么说呢,这个2起始说起来也不是随机值,可以肯定的是你越界了。
按照内存分配。
你看你上面定义的变量。
int a[2]={0};
int i,j,k=2;
变量i是定义在你a[2]后面的,所以,你其实输出的是i的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乱码z灬
2013-07-26
知道答主
回答量:2
采纳率:0%
帮助的人:2820
展开全部
初始化时:a[0]=a[1]=0;
i=0时,a[0]=a[0]+1=0+1=1,a[1]=a[0]+1=1+1=2:
i=1时,a[0]=a[1]+1=2+1=3,a[1]=a[1]+1=2+1=3。
但a[2]是不确定的,因为越界了
main{

int a[2]={0};

nt i,j,k=2;

a[k]=4; //在这加一条试试,输出应该就变成4了,一直都是2应该是a[2]的这块内存一直没有被 使用

.for(i=0;i<k;i++)
for(j=0;j<k;j++)

a[j]=a[i]+1;

printf("%d",a[k]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祥龙九霄
2013-07-26 · 超过30用户采纳过TA的回答
知道答主
回答量:101
采纳率:100%
帮助的人:68.4万
展开全部
给你看下执行步骤:

第一次外循环时:

i 取值 a[i]取值 j取值 a[j]取值
0 0 0 a[0] = 1
1 a[1] = 1

1(此时数组a[2]内容已经为{1,1})
1 0 a[0] = 2
1 a[1] = 2

执行完以上步骤后a[2] = {2,2};
更多追问追答
追问
执行循环后是a[2]={3,3}.
追答

对对,是{3,3},但是过程就是那样的,程序中还有一行错误。for(j=0;j<k;i++) 这行有错吧,应该是j++。正确的结果应该是                                                                                                                    

a[j] = a[i] + 1
i 取值 a[i]取值 j取值 a[j]取值
0 0 0 a[0] = a[0] + 1 = 1
1 a[1] = a[0] + 1 = 2

1(此时数组a[2]内容已经为{1,1})
1   0 a[0] = a[1] + 1 = 3
1               a[1] = a[1] + 1 = 3 

执行完以上步骤后a[2] = {3,3};
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友455632d898
2013-07-26 · TA获得超过275个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:338万
展开全部
a[2] 的值是随机的. 这块内存是不可知的.有时候会报错,有时候会给你返回一个值.
追问
每次输出结果都是2,不是随机的。当去掉循环赋值部分的时候,才出现你说的问题。
追答
数组越界了。是随机的。由于编译器的问题,可能你执行的值都是2.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yj7989810
2013-07-26
知道答主
回答量:52
采纳率:0%
帮助的人:23.3万
展开全部
大哥,你每个循环都是i++是几个意思啊?然后a[2] 的值是随机的。我真不知道你是如何运行处2来的。反正我把j里面的i++换成j++运行出来a[0]=a[1]=3。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式