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

C语言for循环条件中仅写变量i的含义及等效i>0原因咨询

关于C语言for循环条件中直接写变量i的解释

先看你的代码:

int main()
{
    for(int i=3;i;i=i-1)
    {
        printf("*");
    }
    return 0;
}

核心逻辑:C语言的布尔值规则

C语言里没有专门的布尔类型(C99新增的_Bool本质也是整数),它判断真假的规则很简单:

  • 任何非零值都被视为“真”
  • 只有0被视为“假”

你的循环具体执行过程

  1. 初始化i=3,非零,条件为真,进入循环打印*;
  2. 循环后执行i=i-1,i变成2,非零,继续循环打印;
  3. i再减1变成1,非零,第三次打印;
  4. i减到0时,条件为假,循环终止。

所以总共执行3次,输出***。

和i>0写法等价的原因

当i是正整数时,i和i>0的判断结果完全一致:

  • 当i>0时,i本身是非零值(真),i>0的结果是1(真);
  • 当i=0时,i是0(假),i>0的结果是0(假)。

直接写i是C里的常用简写,和i>0效果完全一样,只是更简洁而已。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:10:45