for多重循环的执行顺序是先执行内部循环,再执行外部循环
通过对代码进行等价转换,按照上述原理即可知道代码的执行顺序
对于上面代码:
for(i=0i<8i++)for(j=0j<10j++)
scanf("%d,%d",&i,&j)
它等价于下面
for(i=0i<8i++){for(j=0j<10j++){
scanf("%d,%d",&i,&j)
}
}
从上面可以看出,每执行完一次j循环,i的值才增加1
但是注意,该代码有一个陷阱:scanf函数会改变i和j的值
实际执行顺序会受用户输入的i、j值的不同而不同
对于下面的代码
for(i=0i<8)min_m(i++)=i
for(j=0j<8j++)
它等价于下面的代码:
for(i=0i<8){min_m(i++)=i
}
for(j=0j<8j++){}
会先执行min_m函数8次 然后再执行j循环
注意,该代码有一个问题,就是min_m函数的返回值必须是一个左值。
这意味着某些变量的值发生了更改,可能会影响到循环。
顺序执行,从main函数开始,顺序执行。遇到调用的其它函数就先运行函数,然后继续执行主函数下面的语句。
当整个程序编写好后,编译器先编译,再连接各种库函数,然后执行程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)