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

C语言中x++与++x的混淆:代码运行结果的疑问

C语言中前置自增与后置自增的区别

先看两段代码的执行结果:

第一段代码:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int x = 1, y = 1;
    printf("%d\n", ++x);
    printf("%d\n", x);
    return 0;
}

运行后输出2, 2。

第二段代码:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int x = 1, y = 1;
    printf("%d\n", x++);
    printf("%d\n", x);
    return 0;
}

运行后输出1, 2。

你搞反了x++的执行逻辑,它不是“先赋值再自增”,而是先返回变量当前的原始值,完成当前语句的操作后,再对变量进行自增。

具体来说:

  • 对于++x(前置自增):先把x的值加1,再返回加1后的结果。所以第一段代码里,第一个printf调用时,x先从1变成2,输出的就是2,后续第二个printf自然也输出2。
  • 对于x++(后置自增):先把x当前的数值(也就是1)传递给printf输出,等这个printf执行完,x才会自增变成2。所以第二个printf输出的就是自增后的2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:40:29