c语言++自增的问题?

为什么结果a=b++;中的b++能自增加1,下面的 a=a++;中的a++不能自增加1呢?

#include <stdio.h>

int main()
{
    int a,b,i;
    a=0;
    b=0;
    for(i=0;i<=10;i++)
    {
         a=b++;
        printf("a(%d)=%d;b(%d)=%d\n",i,a,i,b);
    }
    i=0;
    a=0;    
    for(i=0;i<=10;i++)
    {
         a=a++;
        printf("a(%d)=%d;\n",i,a);        
    
    }
    return 0;    
 } 


a=a++; 是先执行a++
a++是先取a原本的值保存起来,之后a再自己加1,这时a已经加1了,
但是之后再执行a=,又对a重新赋值了先前保存的a原本的值。这样a又变回先前的值了。

你把a=a++;改成a++;或a=a+1;即可

++在后是先赋值再加1,a=a++的值被忽略了,还是a本身。

输出的结果 b和 下面的a不都是1开始嘛

1、a=0
2、执行for循环,i=0,a=a++即a=0,a再加1,但是没有赋值,