我不明白为什么这个循环打印"INFINITE".如果字符串长度为1,怎么会length()-2产生一个大整数?
for(int i=0;i<s.length()-2;i++)
{
cout<<"INFINITE"<<endl;
}
Run Code Online (Sandbox Code Playgroud)
std::string.length()返回一个size_t.这是无符号整数类型.您正在经历整数溢出.在伪代码中:
0 - 1 = int.maxvalue
Run Code Online (Sandbox Code Playgroud)
在你的情况下具体是:
(size_t)1 - 2 = SIZE_MAX
Run Code Online (Sandbox Code Playgroud)
其中SIZE_MAX通常等于2 ^ 32 - 1
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |