for循环语句头的执行顺序
算是温习吧。问题比较基础,但是也比较重要。
for循环可以说在每个程序中都少不了的,语句头包括三个部分:初始化,判读条件,一个表达式。
但是这三个部分的执行顺序是什么,这是我们所关心的,也是本文所要讨论的。
下面先看一段简单的代码。
#include <stdio.h>int print1(int i,int j){ printf("执行判断条件,i=%d,j=%d \n",i,j); return 1;}int main( ){ int i = 0, j = 10; for(i=0;((print1(i,j)) && (i<j)); i++,j--,printf("执行for()中的第三个语句,i=%d,j=%d \n",i,j)) { if(j==10) { printf("%d,%d ",i,j); j--; } j++; printf("执行for循环体中的最后一句,i=%d,j=%d\n ",i,j); } printf(" %d,%d ",i,j); return 0;}
打印结果:
执行判断条件,i=0,j=10
0,10执行for循环体中的最后一句,i=0,j=10
执行for()中的第三个语句,i=1,j=9
执行判断条件,i=1,j=9
执行for循环体中的最后一句,i=1,j=10
执行for()中的第三个语句,i=2,j=9
执行判断条件,i=2,j=9
执行for循环体中的最后一句,i=2,j=10
执行for()中的第三个语句,i=3,j=9
执行判断条件,i=3,j=9
执行for循环体中的最后一句,i=3,j=10
执行for()中的第三个语句,i=4,j=9
执行判断条件,i=4,j=9
执行for循环体中的最后一句,i=4,j=10
执行for()中的第三个语句,i=5,j=9
执行判断条件,i=5,j=9
执行for循环体中的最后一句,i=5,j=10
执行for()中的第三个语句,i=6,j=9
执行判断条件,i=6,j=9
执行for循环体中的最后一句,i=6,j=10
执行for()中的第三个语句,i=7,j=9
执行判断条件,i=7,j=9
执行for循环体中的最后一句,i=7,j=10
执行for()中的第三个语句,i=8,j=9
执行判断条件,i=8,j=9
执行for循环体中的最后一句,i=8,j=10
执行for()中的第三个语句,i=9,j=9
执行判断条件,i=9,j=9
9,9