为什么结果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,但是没有赋值,