C语言中关于a++和a+1的问题.........高人解答,悬赏不是问题

来源:百度知道 编辑:UC知道 时间:2024/07/07 16:49:28
main()
{
int a,b,i=0;
scanf("%d",&b);
for(a=0;a<=b;a+1)
{
i=i+a;
}
printf("%d",i);
getch();
}

main()
{
int a,b,i=0;
scanf("%d",&b);
for(a=0;a<=b;a++)
{
i=i+a;
}
printf("%d",i);
getch();
}

如上,只是a++和a+1的区别,为什么效率差了千百倍?

for(a=0;a<=b;a+1)如果b>0的话这是个死循环,因为每次循环a都是等于0,a<=b永远都为真,a+1并不会把这个新值赋给a。
而for(a=0;a<=b;a++)每次执行a++后a就会增加1,相当于a=a+1,所以每次判断a<=b,a都会是新的值。

第一种写法是个死循环,因为a一直等于0