C 有人能解释一下这个循环是什么意思吗?

C 有人能解释一下这个循环是什么意思吗?,c,loops,while-loop,C,Loops,While Loop,我知道它可能不会这么复杂,但我不明白如果b=0它会变成什么样子,那么它就不会执行。否则,它将是一个无限循环。 这里,b的值在a中赋值。希望您能理解。假设a和b是变量 这表示“将b的值分配给a。如果该值不为零,则执行循环内部操作(即“不执行任何操作”)。继续分配,直到a(分配后)为零。” 理论上,b可以通过中断或其他源在整个程序中更改。例如,它可以映射到内部寄存器。请注意,这也在改变a,这可能会引发一系列事件,使b为零,从而结束循环 如果b和a没有变化/没有波动,这可以(以jankey的方式)作为

我知道它可能不会这么复杂,但我不明白如果b=0它会变成什么样子,那么它就不会执行。否则,它将是一个无限循环。
这里,b的值在a中赋值。希望您能理解。

假设
a
b
是变量

这表示“将
b
的值分配给
a
。如果该值不为零,则执行循环内部操作(即“不执行任何操作”)。继续分配,直到
a
(分配后)为零。”

理论上,
b
可以通过中断或其他源在整个程序中更改。例如,它可以映射到内部寄存器。请注意,这也在改变
a
,这可能会引发一系列事件,使
b
为零,从而结束循环

如果
b
a
没有变化/没有波动,这可以(以jankey的方式)作为“清除
a
,断言
b
为零”。如果
b
为非零,程序将挂起

最有可能的是,它意味着
while(a==b),可被视为“断言a不等于b,否则挂起”


for
循环包含您的答案。for语句的中间是类似于
while()
中的条件。此for循环一直运行到
*s2='\0'
,同时将数据从
s2
复制到
s1
。这对字符类型有效。

除非
b==0,否则它将是一个无限循环。
很可能是一个错误。@FiddlingBits基本上是这样的nothing@FiddlingBits非常感谢你,对不起打扰了you@FiddlingBits:或
b
是易失性的或
a
b
是预处理器宏…如果
b
0
它将执行,效果将是将
a
设置为
0
while (a = b) 
   ;
void stringCAT(char *s1, char *s2)
{
    while(*s1 != '\0')
    {
        s1++;
    }

    for(; *s1 = *s2; s1++,s2++)
    {
        ;
    }
}