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

C语言for循环代码解析:条件i=3为何引发无限循环?

C语言for循环中i = 3的含义与无限循环原因解析

先看这段代码的完整写法:

int i; 
for ( i = 0; i = 3; i++ ) 
    printf("Hello");

1. i = 3的具体含义

这里的i = 3是赋值表达式,不是用来判断相等的比较操作(比较相等应该用==)。它会把数值3赋值给变量i,同时这个赋值表达式本身会返回赋值后的结果——也就是3。

2. 循环无限运行的原因

在C语言的条件判断中,非零值会被视为布尔真,零值视为布尔假。每次循环进入条件检查阶段时,都会执行i = 3:

  • 先把i的值重置为3,表达式返回3(非零,即真),所以循环条件永远成立;
  • 循环体执行printf("Hello")后,会执行i++把i变成4,但下一次循环检查条件时,又会重新执行i = 3,把i打回3,如此往复,循环永远不会终止。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:31:31