C语言程序的运行顺序

C语言程序的运行顺序,第1张

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函数开始,顺序执行。

遇到调用的其它函数就先运行函数,然后继续执行主函数下面的语句。

当整个程序编写好后,编译器先编译,再连接各种库函数,然后执行程序。

for (i = 0i<2i++)

{

for (j = 0j<2j++)

{

for (k = 0k<2k++)

{

printf("%d %d %d\n", i, j, k)

}

}

}

最开始i=0, j=0,k从0到1;

输出:0 0 0 / 0 0 1

然后k循环结束,j增加变为1,此时k继续从0到1,

继续输出:0 1 0 / 0 1 1

然后k循环结束,j循环结束,i增加变为1,j继续从0开始,k从0到1;

输出:1 0 0 / 1 0 1

然后k循环结束,j变为1,k继续从0到1;

输出: 1 1 0 / 1 1 1


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7765184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存