C语言数组学习问题 循环方式给数组赋值

main() /*采用循环的方式给数组赋值*/ { int a[3],i; /*定义一个长度为3的数组*/ for(i=0;i<3;i++) /*循环赋值*/ { a[i]=i; /*这个循环我就死活理解不了。。 */ } for(i=0;i<3;i++) { printf("%d\ ",a[i]); } getch(); } 大家帮忙详细解释下 最好通俗易懂

就是for循环没学会吧。那就讲一下for循环和数组应用。
就拿你的这个程序举例子好了,定义了一个整型数组a[3],然后看这段代码:
for(i
=
0;
i
<
3;
i++)
{
a[i]
=
i;
}
for循环的括号里面有三个东西,for(赋初值;
循环条件;
步长)
赋初值就是给循环变量(相当于一个计数器)赋初值,当然也可以初始化其他的变量。第一个分号后面是循环条件,只有满足循环条件才执行循环体内部的语句,不满足则跳出循环。第二个分号后面是循环变量的自增步长,就是每次循环结束以后,循环变量要增加或减少多少,当然也可以执行其他的运算,按照需求来。
运算过程如下:
进入for循环后,
第一次循环:i
=
0,给变量
i
赋初值为0,然后判断
i
<
3,如果i

小于3的,那么进入循环内部执行for循环里面的语句,即a[i]
=
i。
这里,i
是等于
0
的,那么a[i]就是a[0],a[i]
=
i的意思就是a[0]
=
0,也就是说,给数组a的第一个元素(即下标为0的元素)赋值为0。接着a[i]=i这句执行完了,接着执行的是for循环的步长自增语句,即i++。i++和i=i+1是等价的,所以执行完这句语句以后,i的值从0变成了1。到这里,第一次循环就结束了,现在执行第二次循环。
第二次循环:第一次循环结束以后,进入第二次循环之前,先要执行for循环的第一个分号后面的语句,就是循环条件判断。即i<3。在第一次循环结束后,i的值是1,那么1是小于3的,因此符合该条件,开始执行循环体内部的语句a[i]
=
i,这里,i的值是1,那么a[i]就是a[1]了,也就是数组a的第二个元素(即下标为1的元素),执行完以后,又跳回for循环的第二个分号后面了,执行i++,执行完i++以后,i的值从1变成了2。接着开始第三次循环。
如此往复,第三次循环结束以后,i的值变成了3,在执行第四次循环的时候,首先进入for循环的循环条件判断,也就是第一个分号后面的语句,i<3,这个时候i的值是3,3<3是不成立的,因此从这里开始跳出循环,第四次循环也就不执行了。
循环结束以后,数组a就变成这样了:a[0]=0,a[1]=1,a[2]=2。而i的值在此时为3。
自己一步一步写出来for循环的执行步骤就好了。
总结:
for(赋初值;
循环变量;
循环变量自增)
{
循环体;
}
这句语句的执行顺序是:
1.赋初值。
2.判断循环条件,若满足条件执行第3步,若不满足条件执行第6步。
3.执行循环体语句。
4.循环变量自增。
5.执行第2步。
6.跳出循环。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜