关于++a,a++输出问题

问题遇到的现象和发生背景

这样输入,为什么输出的结果是12 11 12,而不是12 11 11?

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
int main(void)
{
    int a=10;
    printf("%d %d %d",a,a++,++a);
    return 0; 
}

这个跟上一个题目有区别,
a++是先入栈,然后a++,其实这里入栈的是一个值,不是实际的a(可以理解为a的一个临时替代品)
++a入栈的是实际的a,所以,最后输出的时候,输出的是a最后的值。


具体过程:
++a,a变成11,a入栈(注意,这里是a入栈,不是11入栈)
a++,a入栈(a的值入栈,即入栈的是11,11相当于a的值的一个副本),然后a++,a变成12
a入栈,a的值是12
所以出栈的时候,是12 11 12

可以理解为a++的时候,入栈的是a的一个副本,这个副本跟执行++前a的值一致。++a入栈的是实际的a。
可以看一下下面的链接:

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632