gpt4 book ai didi

C++ 奇怪的东西

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:04:40 27 4
gpt4 key购买 nike

谁能给我解释一下,为什么这部分代码的行为不同?

while((c = fread(buf, sizeof(char), 1, f)) != 0);
{
if(write(t, buf, c) < 0)
{
return E_MSGSEND;
}
}

/////////////////////////////////////

do
{
c = fread(buf, sizeof(char), 1, f);
if(write(t, buf, c) < 0)
{
return E_MSGSEND;
}
} while(c != 0);

while {} 只运行 1 次,而 {} while 运行 5 次。有什么区别?在 while {} c 被初始化为 1 之前。

多谢指教

最佳答案

在第一个 while 之后有一个分号:

while((c = fread(buf, sizeof(char), 1, f)) != 0);

这实际上使它成为一个空循环,它可能会执行与另一个循环相同的次数,但它的主体不包含任何语句。不过,下面的 if 不再是该循环的一部分,因此它只执行一次。

关于C++ 奇怪的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2345032/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com