为了账号安全,请及时绑定邮箱和手机立即绑定

for()循环中的变量问题

for()循环中的变量问题

C
青苹果Bian红苹果 2017-02-27 10:00:54
#include<stdio.h>void main(){int i,j,a[4],k;for(j=0;j<4;j++){k=0;printf("a[%d]=%-3d ",j,k);k++;}}为什么我输出的数组,k都是0呢,相反,我把第一行的k赋值为0,去掉for()中的k那行,运行结果就变成0 1 2 3 ,正常了,这是为什么呢?
查看完整描述

4 回答

已采纳
?
习惯受伤

TA贡献885条经验 获得超1144个赞

你看你printf最后一个参数是k,也就是输出中会有k值。但是输出之前你就给k重新赋了值,所以输出0。去掉之后,第一次k值为初试值0,下次循环时,执行了k++,k自增变成了1,所以会顺序输出。
查看完整回答
5 反对 回复 2017-02-27
?
HeyGary

TA贡献1条经验 获得超1个赞

k在循环中被赋值为0 输出当然一直为0 

查看完整回答
1 反对 回复 2017-02-27
?
你7

TA贡献2条经验 获得超1个赞

因为K=0你放到循环中了,每次进入循环时,从上到下进行执行,所以每一次循环都会重新把k赋值为0,打印出来的也就是0了。
查看完整回答
1 反对 回复 2017-02-27
?
节奏的忧伤3676956

TA贡献1条经验 获得超1个赞

循环中的第一行每次都会把k的值赋值为0,所以都是0,如果去掉的话就没有了,k就会递增!
查看完整回答
1 反对 回复 2017-02-27
?
夂亦

TA贡献2条经验 获得超0个赞

k初始化为0就可以了,不能在循环体里面赋值
查看完整回答
反对 回复 2017-02-27
  • 4 回答
  • 0 关注
  • 1674 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信