虽然sum定义时为9999,但是在for循环中又重新赋值为1,for循环,当sum>=1024时循环才结束;
for( sum=1; sum<1024; sum+=sum );中sum+=sum会导致
第一次循环完后sum=2;
第二次循环完后sum=4;
第三次循环完后sum=8;
第四次循环完后sum=16;
直到sum=1024,不满足循环条件,退出循环;printf("%d",sum); 打印的自然是1024咯
for( sum=1; sum<1024; sum+=sum ); //这里结尾有个分号,说明没有循环体
sum从1开始自加,1变2,2变4,4变8,。。。。当达到1024时,结束循环
for( sum=1; sum<1024; sum+=sum );
sum=1,每次都是sum+sum,那就是1+1=2;2+2=4;4+4=8.......512+512=1024,这时,不满足sum<1024条件,跳出循环。所以sum最终等于1024
因为你进行了循环,最后一次sum = 1024 ,所以结果就是:1024 了呗。