为什么c语言这个程序显示1024.求解释一下这个程序

int main(){int sum = 9999;for( sum=1; sum<1024; sum+=sum );printf("%d",sum); return 0;}
2025-03-05 00:06:32
推荐回答(5个)
回答1:

虽然sum定义时为9999,但是在for循环中又重新赋值为1,for循环,当sum>=1024时循环才结束;

回答2:

for( sum=1; sum<1024; sum+=sum );中sum+=sum会导致
第一次循环完后sum=2;
第二次循环完后sum=4;
第三次循环完后sum=8;
第四次循环完后sum=16;
直到sum=1024,不满足循环条件,退出循环;printf("%d",sum); 打印的自然是1024咯

回答3:

for( sum=1; sum<1024; sum+=sum ); //这里结尾有个分号,说明没有循环体
sum从1开始自加,1变2,2变4,4变8,。。。。当达到1024时,结束循环

回答4:

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

回答5:

因为你进行了循环,最后一次sum = 1024 ,所以结果就是:1024 了呗。