C 有人能解释一下这个循环是什么意思吗?
我知道它可能不会这么复杂,但我不明白如果b=0它会变成什么样子,那么它就不会执行。否则,它将是一个无限循环。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的值在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++)
{
;
}
}