a casual meeting - C language

    我想对初学C语言的初学者来说,在学习过程中遇到的第一个不太好梳理的地方应该是循环部分,尤其是遇到for语句和其衍生——for语句嵌套结构。

    在讲解具体代码前先回顾for语句的语法:for语句首先执行initial。然后检查condition,如果condition为真则执行statement(s),再执行increment,继续到condition环节。如果condition为假,则执行statement(s)后的第一条语句。

for (initial; condition; increment)
    statement(s)

   例如我今天遇到的一段代码如下:       

for (a = 0; a < 10; a++)
{                                                          一
    for (b = 0; b < 10; b++)
    {                                                      二
        for(c = 0; c < 10; c++)     
        {                                                  三
            printf("\nrandom_array[%d][%d][%d] = ", a, b, c);
            printf("%d", random_array[a][b][c]);
        }                                                  三
        printf("\nPress Enter to continue, CTRL-C to quit.");

        getchar();
    }                                                      二
}                                                          一

    代码实现过程如下:

1. a初始化为0,判断a是否小于10

2. 若小于10,则执行第一个for循环的语句块,即从b初始化的位置开始到b++

3. 执行b初始化为0的语句后,判断b是否小于10

4. b若小于10,则执行第二个for循环的语句块,从c的初始化位置到c++

5. c初始化为0,判断c是否小于10。若小于10,输出下标为[0][0][0]的数组的值,并使c+1(第三个代码块中的内容), 至此第三个for循环被执行一次

6. 之后根据c值与10的关系一直执行第三个for循环代码块,输出了下标为 [0][0][0] 一直到 [0][0][9]的数组的值。当输出[0][0][9]后,c值+1等于10,到condition时不满足条件,因此跳出第三个for语句,至此执行了10次第三for语句,结果是输出下标为 [0][0][0] 一直到 [0][0][9]的数组的值

7. 跳出第三for语句后,执行第三for语句下面的语句,即输出“press enter to continue,CTRL-C to quit."和执行getchar()函数,另外使b+1,至此第二个for语句被执行一次简写如下:

[0][0][0]=...
[0][0][1]=...
.
.
[0][0][9]=...
Press Enter to continue, CTRL-C to quit.

8. 判断b的值与10的关系,因为b此时=1,满足条件,再把第二个for语句执行一次(具体包括上面所述的将第三个for语句执行10次,输出“press enter to continue,CTRL-C to quit."、执行getchar()函数、b+1)

9.在执行完10次第二for语句后,b=10,到condition时不满足条件,跳出第二个for语句,至此执行了10次第二for语句,结果简写如下:

[0][0][0]=...
[0][0][1]=...
.
.
[0][0][9]=...
Press Enter to continue, CTRL-C to quit.
/*在此处回车*/

[0][1][0]=...
[0][1][1]=...
.
.
[0][1][9]=...
Press Enter to continue, CTRL-C to quit.
/*在此处回车*/

.
.
[0][9][0]=...
[0][9][1]=...
.
.
[0][9][9]=...
Press Enter to continue, CTRL-C to quit.

10. b=10跳出第二for循环后执行increment,即a++,此时a=1,同理接着执行10次第二for语句

11. 执行完10次第二for语句后,a++,a=2,再执行10次第二for语句

12.就这样每当a+1后就执行10次第二for语句,即100次第三for语句,即1次第一for语句,直到程序结束



你可能感兴趣的:(a casual meeting - C language)