gpt4 book ai didi

c++ - unsigned int 导致无限循环

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

下面有两个循环。第一个效果很好,而第二个是无限循环。为什么?

for (unsigned int i=0; i<3; ++i)
{
std::cout << "i= " << i << std::endl; // this gives proper result
}

for (unsigned int i=3; i>=0; --i)
{
std::cout << "i= " << i << std::endl; // infinite loop
}

最佳答案

unsigned int 永远不能小于 0。这就是它 unsigned 的原因。如果您打开一些警告标志,您的编译器应该告诉您您的问题:i >= 0 对于 unsigned始终为真

例如,Clang 根本不需要特殊标志来发出警告:

example.cpp:5:29: warning: comparison of unsigned expression >= 0 is always true
[-Wtautological-compare]
for (unsigned int i=3; i>=0; --i)
~^ ~
1 warning generated.

GCC 需要 -Wextra:

example.cpp: In function ‘int main()’:
example.cpp:5: warning: comparison of unsigned expression >= 0 is always true

关于c++ - unsigned int 导致无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17870409/

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