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函数的返回值必须是一个左值。
这意味着某些变量的值发生了更改,可能会影响到循环。
1.最开始a=0.000000;
2.
C语言从main()函数开始执行,如果在main()函数中不调用test(),那么test()就不执行。
3.
假设调用了test()函数,那么要等timer函数执行完之后才开始执行a
=
k
+
i
。
4.
假设调用了timer()函数,只是要循环100次,并不是100个时钟周期。
C程序的执行顺序是什么?
A.从第一条语句开始
B.从程序开头开始
C.从主函数开始
D.不知道
正确答案:从主函数开始
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)