帮忙解释一下这个函数里for里头的含义 c语言

题目是倒计时。编写函数,在屏幕上显示一个倒计时的时钟,以剩余的“分:秒”的格式显示当前时间,如“还 剩 8:23”,且每秒刷新一次,直至变化至“0:0”,显示“8:23 已到”。
#include
#include

int main()
{
int minutes,second,i,m;

printf("请输入分钟数:");
scanf("%d",&minutes);

printf("请输入秒数:");
scanf("%d",&second); 

i=second;
m=minutes;

for (; minutes >= 0; --minutes) //这里是怎么用的没看明白求详细解释
{
    for (; i >= 0; --i) 
    {
    printf("还剩%2d:%2d\n", minutes, i);        
    Sleep(1000);                                    
    }                                                   
    i=59;
}
    printf("%2d:%2d已到\n",m,second);

    system("PAUSE");

return 0;

}

for(a;b;c)
执行顺序
先执行a
在判断b是否为真,若为真
执行循环体,
执行c
然后再次判断b是否为真,若为真
执行循环体
执行c

其中abc三个表达式都可以省略,但是;号不能省略,在你的问题中,省略了第一个表达式(因为minutes已经定义了,并且赋值,所以可以省略),
第二个表达式是判断minutes大于等于0
第三个表达式,--minutes在有些时候有区别,但是在楼主问题中,等同于minutes=miutes-1
望采纳,谢谢!

for循环没有给初值,因为初值在之前已经设置过了,scanf("%d",&minutes)
其它和正常的for循环含义一致

这就是一个简单的定时器的循环嘛!有什么不理解的地方?
for (; minutes >= 0; --minutes)
最外层循环检查设置的minutes是不是减到0了,
for (; i >= 0; --i)
里面这层循环是检查设置的second是不是减到0了,而且在这个里面的循环里面i每减1都会暂停1000ms的时间,模拟秒的倒计时。
每当秒减少到0,就重新设置秒钟为59,再循环一次外循环,也就是下一分钟的倒计时。
这应该没什么不好理解的吧。
如果你是奇怪for (; minutes >= 0; --minutes)看上去很奇怪,那是因为minutes在之前就已经定义过了,所以for中引用的时候就不用在写表达式1了,就直接空着,分号隔开,写后面的表达式2和3了。

我刚学了几个月c,为什么我都看明白了,先循环i到0,然后i=59 ,m-1,在循环i到0,再i=59,再m-1.......直到m也=0,整个循环结束,

首先要了解for 的含义,
for(循环执行前,一般定义循环变量,也可以为空; 循环执行的条件,不满足退出循环; 一次循环后执行)

第一层循环for (; minutes >= 0; --minutes)
//这句的意思是 输入的分钟数大于等于0进入循环,每次循环完,分钟数减1,该循环就是将分钟数递减直至减为0,循环次数为分钟数+1
第二层for (; i >= 0; --i)
//这句的意思是前面定义i为输入的秒,每次循环完,秒数减1,该循环就是将秒数递减直至减为0,循环次数为秒数+1
循环内部打印当前分秒数,sleep(1000),线程停止1秒
第二层循环执行完毕将秒i置为59
第一次二层循环执行为输入秒执行到0,后面都是从59开始执行到0,符合题目