c51单片机 编程 while( --a != 0) //这句话是什么意思?

void Delay (unsigned int a){ //
unsigned int i;
while( --a != 0){ //这句话是什么意思?
for(i = 0; i < 600; i++); //
}
}

这个是C语言。
a先自减然后赋值,满足a不等于零就继续执行下面的程序。
例如a初值为5,先自减1就变成4让后赋值给a,所以a的值变成4了,不等于,顺序执行下面的程序。
又如果a的初值为1,先自减1变成0,然后赋值给a,这是a的值为0,等于零了。不满足条件,则不执行下面程序。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-16
判断a在每次使用前先自减1看其是否不等于0,如果不等于0就执行while中的语句,等于0就跳过while中的语句
第2个回答  2012-04-16
--a代表a先自减再参与逻辑运算
while( --a != 0)等价于
a=a-1;
while(a!=0)
{
...
a=a-1;
}本回答被提问者采纳
相似回答