要点1: C中0表示假,非0表示真 if(0)-----假 if(1)----真 if (2)-----真while也一样 while(0)----假,不执行; while(1),while(2)-----真,执行要点2:如果if,while,for,do-while等去掉{ },则只有第一个语句是它们的内容,即第一个分号!!如: if (条件)i++; i++; 其中只有第一个i++是if的内容,即if(;) { i++;} i++; while (;) i++; b++; 只有i++是while 的内容,即while (;) { i++;} b++;所以,为了提高程序的可读性,还是不要省略{},这样更清晰哦!理解了这几点,你的题就简单了~~~~~ 你的题等价于:main()
{
int i, j, k;
printf("i j k\n");
for (i=0; i<2; i++) { //1
for(j=0; j<2; j++) { //2
for(k=0; k<2; k++) { //3
printf(“%d %d %d\n", i, j, k); } //3} //2} //1
说明了从里到外执行循环。变化频率最高的是k,每次printf语句都变,其次是j,每两次printf变化一下,然后是i每四次变化一下。
从里到外。。意思就是 i=0 j=0时先循环K. 循环结束再运行i=0 j=1再循环K ...一直这样下去!~
意思是 k 的for 语句循环的次数=k * j, 而 j 循环的次数=j * i ,当i的值大于或等于2时,结果所有循环,那么printf语句被运行的次数=k * j * i
for (i=0; i<2; i++) for(j=0; j<2; j++)
for(k=0; k<2; k++) 要是这样看的话会不会好理解些,从里到外。