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

C语言while循环中count++与++count的异常问题求助

为什么count = count++会无限循环,count = ++count却正常?

先明确C语言里自增运算符的核心区别:

  • 后置自增count++:先返回变量当前的原始值,再把变量本身加1。
  • 前置自增++count:先把变量本身加1,再返回加1后的新值。

分析count = count++的无限循环问题

以初始值count=1为例:

  1. 执行count++时,先返回count的当前值1,然后count本身被自增为2;
  2. 紧接着执行赋值操作count = [返回值],也就是把count重新设为1;
  3. 循环条件count <5永远成立,所以会无限输出"1=0"。

分析count = ++count的正常执行

同样以初始值count=1为例:

  1. 执行++count时,先把count自增为2,再返回这个新值2;
  2. 赋值操作count = 2相当于做了一次无意义的重复赋值,但count确实已经被自增到了2;
  3. 每次循环count都会正常递增,从1→2→3→4→5,当count=5时不满足count<5,循环退出,刚好输出4次"1=0"。

额外提醒

其实完全没必要写count = count++或者count = ++count这种冗余代码,直接在循环里写count++或者++count就能达到目的,比如:

#include <stdio.h>

int main() {
    int count = 1;
    while (count < 5) {
        printf("1=0\n");
        count++; // 直接自增即可
    }
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:25:04