You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用long int的for循环会无限循环?Visual Studio报C6295错误

为什么使用long int的for循环会陷入无限循环?

在Visual Studio中遇到代码分析警告:

C6295 Ill-defined for-loop. Loop executes infinitely.

对应的C++代码如下:

for (long int i = 1; i <= 5000000000; i++) {
        //cout << i;
    }

问题原因

在Visual Studio的Windows编译环境下,long int是4字节的有符号整数,取值范围为 -2147483648 到 2147483647。而你设置的循环上限5000000000远超出了这个范围的最大值。

当变量i递增到2147483647时,再执行i++会触发有符号整数溢出。在Visual Studio的实现中,溢出后的数值会绕回成-2147483648,此时i <= 5000000000的判断永远为真(负数必然小于5000000000),循环也就陷入无限执行的状态。

解决办法

  • 将变量类型改为long long,它在Visual Studio中是8字节有符号整数,取值范围完全能覆盖5000000000:
for (long long i = 1; i <= 5000000000; i++) {
        //cout << i;
    }
  • 或者将循环上限显式声明为长整型常量,避免类型不匹配问题:
for (long int i = 1; i <= 5000000000LL; i++) {
        //cout << i;
    }

内容的提问来源于stack exchange,提问作者CopperState

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:00:59