for(i=0i<=9i++)
a[i]=i
以后在执行
for(i=9i>=0i--)
printf("%d",a[i])
二者没有任何关系
晕
第一个循环
第二个循环
i从9到0,自然而然的就把9-
0号元素
一次输出
你这个问题就像是1+1为什么是2一样,容易明白解释困难,可意会不可言传
比如
for(i = 0 i < 5 i++)for(j = 0 j < 5 j++)
printf("i = %d, j = %d\n", i, j)
先执行i=0,读取i<5的逻辑值为1,则为真,再开始内层循环。内层从j=0一直到j=4循环一整遍之后再执行i++,然后i=1<5,再把内层从j=0一直到j=4循环一整遍,如此循环。
执行结果如下(Code::blocks)
i = 0, j = 0
i = 0, j = 1
i = 0, j = 2
i = 0, j = 3
i = 0, j = 4
i = 1, j = 0
i = 1, j = 1
i = 1, j = 2
i = 1, j = 3
i = 1, j = 4
i = 2, j = 0
i = 2, j = 1
i = 2, j = 2
i = 2, j = 3
i = 2, j = 4
i = 3, j = 0
i = 3, j = 1
i = 3, j = 2
i = 3, j = 3
i = 3, j = 4
i = 4, j = 0
i = 4, j = 1
i = 4, j = 2
i = 4, j = 3
i = 4, j = 4
Process returned 0 (0x0) execution time : 0.113 s
Press any key to continue.