请解释一下这个C代码

时间:2017-04-25 16:34:10

标签: c loops for-loop

有人可以帮助我理解这段代码,尤其是空间'部分。在这段代码的输出的第一行中,如果4空间的值没有空间,那么空间的价值如何:

#include <stdio.h>

/* Inverted mirrored right triangle */
int main(int argc, char *argv[])
{
    int i, j, space;

    for (i = 0; i <= 5 ;i++) {
        for (space = 5 - i; space <= 4; space++) {
            printf(" ");
        }
        for (j = 5 - i; j >= 0; j--) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

1 个答案:

答案 0 :(得分:0)

专注于这段代码

for (i = 0; i <= 5 ;i++) {
    --> for (space = 5 - i; space <= 4; space++) {
          printf(" ");
    }
内部for循环空间值的第一次迭代中的

space: 5-0 = 5 作为i:0并且我们有条件space <= 4并且这不满足控制没有 进入大括号的内部而不打印任何空间(第一行)

您必须知道for(;;)的工作原理。

for (i=0 ; i<10 ; i++ ) {
   printf("%d",i);
}
// end loop line

for (loop index initialize  ; condition ; do after innerloop commands ) {
   command1;
   command2;
}

首先i:0并且因为i小于10个循环内部执行 并在屏幕上打印0。 打印后i加1(i++等于i = i+1)。 然后i:1i仍然小于10并打印i:1,我们在屏幕上看到1,所以 上。直到我们在屏幕上i:9打印9然后增加一个i:10 然后是最后一次迭代,就像现在i:10并且不小于10的内部 循环不执行,程序控制到循环后(结束循环线)。