c++ - 为什么下面的循环会无限次运行

标签 c++

<分区>

这看起来是一段很正常的代码……但我不知道为什么它表现出异常行为。

#include <bits/stdc++.h>
using namespace std ;

int main()
{
string s ;
cin>>s;

for(int i =2 ; i < s.length()-2 ; i++)
{
    cout<<"AAAA"<<endl;
}

}

对于长度为 1 的字符串的输入,如“B”....预期的输出应该是什么...但输出是无限次的“AAAA”..无法弄清楚为什么循环运行 infiniye次

最佳答案

不是无限的。它将从 2(开始)运行到 s.length() - 2(结束)。因为 s 是空的,它的大小是 0 并且它的类型是无符号,从 0 减去 2 将产生 2^32 - 2(或 2^64 - 2),这是一个相当大的数字。

关于c++ - 为什么下面的循环会无限次运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56508597/

相关文章:

c++ - 无法将 sregex_iterator 作为流传递给 cout

c++ - C++中最基本的类是什么

c++ - 是否可以将 pnames.icu 的内容存储在 Windows C++ 全局变量中?

c++ - dlopen和隐式库加载: two copies of the same library

c++ - 来自 Qt 中具有倾斜度的线的 BoundingRec

C++ 异常处理中的 Else 语句

c++ - odbc 库在 ubuntu 上的位置

c++ - 解决 main 中的 LNK2019 错误

c++ - 如何处理状态转换并将 "if"语句替换为多态类型?

c++ - 使用 (const int &var) 形式参数代替 (const int var) 有什么好处吗?