![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
int a=-1,b=-1; for(;a++;) ++b; printf("%d,%d",a,b);
3个回答
展开全部
一、帖子代码中的a++和++b由于都是独立的语句,都等效于自增1:
a=a+1;
b=b+1;
二、帖子中的for(A;B;C;)循环省略了表达式A和C,只有表达式B,标准模板A是初始化、B是结束判断、C是每次变化,结束判断表达式a++表示每次循环后判断a是否为0,不为0就把a值+1然后继续执行;
三、帖子程序的for后面没有花括号,表示循环执行的语句只有++b;后面的printf在循环完毕执行。
a=a+1;
b=b+1;
二、帖子中的for(A;B;C;)循环省略了表达式A和C,只有表达式B,标准模板A是初始化、B是结束判断、C是每次变化,结束判断表达式a++表示每次循环后判断a是否为0,不为0就把a值+1然后继续执行;
三、帖子程序的for后面没有花括号,表示循环执行的语句只有++b;后面的printf在循环完毕执行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将a++视为循环执行判断条件
第一次循环时 a++为-1 不为0在c语言中视为条件为真,循环正常进行 一次循环结束时a值为0,b值为0
第二次循环时 a++为0 条件为假 ,不执行循环体 ,但作为循环条件的表达式a++在判断完成后自动+1,b保持上一次循环后的结果0
最后打印出来结果就是 1,0
第一次循环时 a++为-1 不为0在c语言中视为条件为真,循环正常进行 一次循环结束时a值为0,b值为0
第二次循环时 a++为0 条件为假 ,不执行循环体 ,但作为循环条件的表达式a++在判断完成后自动+1,b保持上一次循环后的结果0
最后打印出来结果就是 1,0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询